関数の前方宣言がソースファイル(.cpp)で機能するとき、なぜ同じことがクラスに対して機能しないのでしょうか?クラスの前方宣言、関数
ありがとうございました。
// main.cpp
void forwardDeclaredFunction() ; // This is correct
class One ; // Why this would be wrong
int One:: statVar = 10 ;
void
One :: anyAccess() {
std::cout << "\n statVar:\t " << statVar ;
std::cout << "\n classVar:\t" << classVar ;
}
class One {
public:
void anyAccess() ;
static int statVar ;
private:
int classVar ;
} ;
int main (int argc, char * const argv[]) {
One *obj = new One ;
return 0;
}
void forwardDeclaredFunction() {
}
'class One;'は、フォワードクラス宣言の正しい構文です。どんなコンパイラエラーメッセージが表示されていますか? –
エラー:不完全なタイプの構造体1の無効な使用。私はMac – Mahesh