2016-12-07 18 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的實例化參數。它會編譯錯誤,但play4很好。它怎麼可能?

+2

'PLAYERS play4();'是一個函數聲明 – StoryTeller

+0

也許把它分成兩個問題? 'play4()'一個是重複的。 – juanchopanza

+0

@StoryTeller啊,是的,愚蠢的我,我打算調用默認的構造函數但我忘了打電話給默認的構造函數必須不能使用括號或將是函數的聲明和我嘲笑自己,因爲在該類沒有默認構造函數哈哈..我修復代碼後編譯好,只是我的錯誤。謝謝 – Aorstab

回答

0

它只是被稱爲多個聲明,沒有特別的名稱,據我所知。

你要做的僅僅是利用這樣的方式縮短,由具有類定義的右大括號和分號,這是完全合法的,但不尋常的聲明。

相關問題