読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

デフォルト引数とコンストラクタ

プログラム C++

今までなんとなくで通してたこと。

class A
{
public:

	A( int a = 0 ){}
	void put(){}
};

void main()
{
//	A a();		// NG
//	a.put();

	A b( 1 );	// OK
	b.put();

	A c = A();	// OK
	c.put();
}


デフォルト引数のデフォルトコンストラクタインスタンスを生成するときに、
A a();
と書くとエラーになる。
どうやら、関数のプロトタイプと認識しているよう。


なぜこれがダメなのだろうか??
また、デフォルト引数を JIS の索引で調べても載ってないけど、正式な名称はなんだろう??