【初心者歓迎】C/C++室 Ver.9【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0767デフォルトの名無しさん
NGNG#include <iostream>
class Display {
public:
static Display& screen();
void show() {}
private:
Display() { std::cout << "Display()" << std::endl; }
~Display() { std::cout << "~Display()" << std::endl; }
Display(const Display&);
Display& operator=(const Display&);
};
Display&
Display::screen()
{
static Display display;
return display;
}
int
main()
{
Display& display = Display::screen();
display.show();
return 0;
}
「error C2248: 'Display::~Display' : private メンバ (クラス 'Display' で宣言されている)にアクセスできません。
'Display::~Display' の宣言を確認してください。」
デストラクタをpublicにしたらコンパイルは通るのですが、privateではいけないのですか?
mingw/g++(3.2.3)では-Wall -Werror -g -O2で何も言われずにコンパイルできたのです。
どちらが正しいのか分からなくなrじょってきあたですす。
■ このスレッドは過去ログ倉庫に格納されています