編譯器錯誤 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
語句或省略傳回運算式,來修正上述錯誤。