プロが教えるわが家の防犯対策術!

以下のプログラムをビルドすると以下のエラーとなってしまいます。
原因が分からないため教えてください。

/tmp/cc7ZeZHD.o:Test.cpp:(.text+0x27): `Sample::Sample()' に対する定義されていない参照です
/tmp/cc7ZeZHD.o:Test.cpp:(.text+0x27): 再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (未定義シンボル `Sample::Sample()' に対して)
collect2: エラー: ld はステータス 1 で終了しました

// Test.cpp
#include "Sample.h"
int main(int argc, char *argv[]){
Sample * sample = new Sample();
}

//Sample.h
#include <iostream>
class Sample {
public:
Sample();
~Sample();
};

//Sample.cpp
#include "Sample.h"

A 回答 (3件)

コンストラクタ、デストラクタの定義が必要です。


何もすることがないなら
> Sample();
> ~Sample();
を除去するか、以下のように定義込みで宣言しましょう。
< Sample(){}
< ~Sample(){}
    • good
    • 0

メンバ関数の宣言だけで、定義がないから…でしょう。



Sample::Sample()の実処理はどんなの想定しているんです?
というか、定義されてない関数をどうやってコールしましょうかねぇ…とリンカが困っていますよ?
    • good
    • 0

なぜ定義しない?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!