私はコンストラクタを呼び出すことができません。でも、この小さな例では、メッセージでコンパイルに失敗します。C++小さな例で直接コンストラクタを呼び出すことができません
Klassentest.cpp:24:27: error: cannot call constructor 'Sampleclass::Sampleclass' directly [-fpermissive]
コード:
#include <iostream>
using namespace std;
class Sampleclass
{
public:
Sampleclass();
};
Sampleclass::Sampleclass(){
}
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
Sampleclass::Sampleclass() *qs = new Sampleclass::Sampleclass();
return 0;
}
私はバージョン4.9.3-1でCygwinのG ++コンパイラを使用していました。
ありがとうございました。
何をしようとする:
は、コンストラクタを使用することができますどのようにいくつかの簡単な例を、確認するには、以下のリンクに従ってください?なぜあなたは 'new'を使っていますか?また、C++で直接コンストラクタを呼び出すことはできません。 – TartanLlamaこれは単なるC++です...コンストラクタは通常の関数ではありません。[this](http://stackoverflow.com/questions/33079486/difference-between-constructor-calls-with-and-without/33079632)質問と回答 –
スタックではなくヒープ上にオブジェクトを配置する必要があります。これは、問題がある小さな例の1つに過ぎません。 – GlenM