2016-12-07 2 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

Это просто называется несколькими объявлениями, никаких специальных имен, насколько мне известно.

Вы просто используете сокращенный способ сделать это, имея объявления между заключительной фигурной скобкой определения класса и точкой с запятой, что совершенно верно, но необычно.