分享方式:


編譯器錯誤 C2534

'identifier' : 建構函式無法傳回值

建構函式不能包含 return 具有運算式的語句(即使運算式具有 類型 void 也一樣。 這與允許型別 void 之傳回運算式的正則 void 傳回函式不同。 不過,在建構函式中,允許使用 return 不含運算式的 語句進行早期傳回。

下列範例會產生 C2534:

// C2534.cpp
// compile with: /c
void void_func() {}

class A {
public:
   int i;
   A() {
      return i;   // C2534
      return 123;   // C2534
      return (void)0;   // C2534
      return void_func();   // C2534

      return;   // OK
   }
};

如果想要早期傳回,可以藉由移除整個 return 語句或省略傳回運算式,來修正上述錯誤。