2016-12-07 8 views
-1

でクラスをインスタンス私はちょうど見つけた私たちは、それがいわゆるこのは定義し、一度

#include <iostream> 

using namespace std; 

class PLAYERS 
{ 
public: 
    int value3; 
    PLAYERS(int value3) 
    { 
     this->value3 = value3; 
    } 
}play1(2), play2(3), play3(7); 

int main() 
{ 
    play1.value3 = 2; 
    PLAYERS play4(); 
    cout << "Hello world!" << endl << play1.value3; 
    return 0; 
} 

のように一度クラスを定義し、インスタンス化することができますか? 私はplay1、play2、play3のようなインスタンス化時に引数を削除します。エラーをコンパイルしますが、play4は問題ありません。どのようにすることができますか?

+2

'PLAYERS play4();'はとにかく関数宣言です – StoryTeller

+0

これを2つの質問に分割することはできますか? 'play4()'は重複しています。 – juanchopanza

+0

@StoryTellerああ、愚かな私、私はデフォルトのコンストラクタを呼び出すつもりだが、私はデフォルトのコンストラクタをコールするのを忘れている括弧を使用する必要がありますまたは関数の宣言される必要があり、 ..コンパイルしたコードを修正した後、私の間違いがあります。ありがとう – Aorstab

答えて

0

複数の宣言と呼ばれていますが、私が知っている限り特別な名前はありません。

クラス定義の閉じ括弧とセミコロンの間に宣言を入れることで、完全に有効だが普通ではない、簡略化された方法を利用しています。

関連する問題