[解決済み] c++でデストラクタへの未定義参照エラー?
2022-02-06 17:19:43
質問
以下はそのクラスです。
class Email{
private:
char to[100];
char from[100];
char subject[200];
char body[1000];
public:
Email();
Email(char *za,char *od,char *tema, char *telo){
strcpy(to,za);
strcpy(from,od);
strcpy(subject,tema);
strcpy(body,telo);
}
~Email();
void setTo(char *to) {strcpy(this->to,to);}
void setFrom(char *from) {strcpy(this->from,from);}
void setSubject(char *subject) {strcpy(this->subject,subject);}
void setBody (char *body) {strcpy(this->body,body);}
char* getTo () {return to;}
char* getFrom () {return from;}
char* getSubject () {return subject;}
char* getBody () {return body;}
void print () {
cout<<"To: "<<to<<endl<<"From: "<<from<<endl<<"Subject: "<<subject<<endl<<body;
}
};
であり、ご覧のようにデストラクタを含んでいます。プログラムの残りの部分は、1つの関数とmainだけです。
int checkEmail(char *p){
int n=0,i=0;
while(p[i]!='\0')
{if(p[i]=='@')
n++;
i++;}
if(n==1)
return 1;
else return 0;
}
int main()
{
char od[100],za[100],tema[200],telo[1000];
cout<<"Za: ";
cin>>za;
if(checkEmail(za)){
cout<<"Od: ";
cin>>od;
cout<<"Tema: ";
cin>>tema;
cout<<"Poraka: ";
cin>>telo;
Email o(od,za,tema,telo);
cout<<"Isprateno: ";
o.print();
}
else cout<<"Pogresna adresa!";
}
エラーになる
-
objDebug
In function `main':|. - C:³³³.cpp|58|undefined reference to `Email::~Email()'|...
- C:\UsersStefan﹑Desktop﹑Main.cpp|58|undefined reference to `Email::~Email()'|...
- |||=== ビルド終了: エラー 2 個、警告 0 個 (0 分 1 秒) ==== ===?
を、o.print()を含む行に追加しました。 というのは何でしょうか?また、私のコードでいくつかの行を強調する方法を教えてください。
どのように解決するのですか?
デストラクタを宣言していますね。
~Email();
...しかし、そのためのボディを定義していない。という意味かもしれません。
~Email() { }
...それとも、機能がないのであれば、そのままにしておけばいいのでしょうか?
(デフォルトのコンストラクタのボディ宣言も抜けています)
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] Javaにデストラクタはありますか?
-
[解決済み] 未定義の動作とシーケンスポイント
-
[解決済み] ベースの仮想デストラクタを明示的に呼び出す必要がありますか?
-
[解決済み】vtableへの未定義の参照
-
[解決済み】デストラクタで例外を投げてはいけない場合、その中のエラーはどのように処理するのでしょうか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】C++の余分な資格エラー
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】'std::cout'への未定義の参照