26

クラスのコンストラクタとデストラクタを定義しようとしていますが、エラーが発生し続けます:

暗黙的に宣言された 'x::x()' の定義

どういう意味ですか?

コードの一部:

///Constructor
StackInt::StackInt(){
    t = (-1);
    stackArray = new int[20];
};

///Destructor
StackInt::~StackInt(){
    delete[] stackArray;
}
4

2 に答える 2

0

留意すべきもう 1 つの点は、コンストラクターがアクセスするものはすべてパブリックでなければならないということです。以前にこのエラーが発生しました。

class X{
   T *data;
 public:      // <-move this to include T *
   X();
   ~X();
}

私のコンストラクターには次のものがあったため、このコードにはまだエラーがあります。

X::X(){data = new T();

つまり、コンストラクタとデストラクタをパブリックにしましたが、それらが使用していたデータはまだプライベートであり、「暗黙的に宣言された定義」エラーが発生しました。

于 2013-01-25T01:22:35.657 に答える