0

この厄介なエラーがあります。

class::method への未定義の参照を取得し続けます

これは私がやりたいコードです

student::student(){
conscience* c;
unsigned short choice = rand() % 4;
if (choice == 0){
    c = new betray();
}
if (choice == 1){
    c = new silent();
}
if (choice == 2){
    c = new confused();
}
if (choice == 3){
    c = new experienced();
}

しかし、エラーが発生し続けます。

この回避策はうまく機能しますが、メイン クラスのコンストラクターではなく、引数によって渡されます。

student::student(conscience* c){
    m_Conscience = c;
}

前もって感謝します。

編集:正確なエラー:「betray::betray()」への未定義の参照

4

1 に答える 1

2

未定義の参照は、次のいずれかを意味する場合があります。

  1. 基本クラスにメソッド宣言があります。これを呼び出しますが、派生クラスには実装されません。
  2. または、実装されていますが、リンクしていないため、リンカはそれを見つけることができません。

betray.oに対してリンクしているかどうかを確認することをお勧めします。makefileを確認してください。makefileをお持ちでない場合は、作成することをお勧めします。

于 2012-08-23T21:23:20.043 に答える