[解決済み] "抽象的な型のオブジェクトを割り当てることができません "エラー
2022-01-30 07:48:51
質問内容
エラーはこちら
vector<Graduate *> graduates;
graduates.push_back(new AliceUniversity(identifier,id,salary,average));
祖父母クラスです。
Graduate::Graduate(char identifier,
long id,
int salary,
double average)
: _identifier(identifier),
_id(id),_salary(salary),
_average(average)
{
}
親クラスです。
UniversityGraduate::UniversityGraduate(char identifier,
long id,
int salary,
double average)
: Graduate(identifier,id,salary,average)
{
}
実クラス/子クラス。
AliceUniversity::AliceUniversity(char identifier,
long id,
int salary,
double average)
: UniversityGraduate(identifier,id,salary,average)
{
_graduateNum++;
_sumOfGrades += average;
_avrA = getAverage();
}
遠回りなのは承知で、ここに全コードを書くことはできませんが......。
どのように解決するのですか?
C++では、少なくとも1つの 純粋仮想関数 と呼ばれます。 抽象クラス . そのクラスのオブジェクトを作成することはできませんが、そのクラスへのポインタまたは参照だけは持つことができます。
抽象クラスから派生している場合は、そのクラスのすべての純粋仮想関数をオーバーライドして定義してください。
あなたのスニペットから あなたのクラス
AliceUniversity
は抽象クラスのようです。の純粋仮想関数をすべてオーバーライドして定義する必要があります。
Graduate
と
UniversityGraduate
.
純粋仮想関数とは
= 0;
を宣言の末尾に追加します。
例
virtual void doSomething() = 0;
具体的な回答としては、エラーが発生したクラスの定義と、そのクラスが派生しているクラスの定義を掲載する必要があります。
関連
-
[解決済み] エラー: '...'のメンバー '...'が非クラス型である場合のリクエスト
-
[解決済み] テスト
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 型名の後の括弧は、newで違いがあるのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] 実装を伴う純粋な仮想関数