2011-02-06 3 views
1

Могу ли я построить конструктор для инициализации структуры таким образом:Что такое синтаксис инициализации структуры на C++?

mystruct struct1(a,b); 

так же, как я инициализировать класс?

Или я должен использовать этот способ:

mystruct struct1=mystruct(a,b); 

?

+3

Единственное отличие между классом и структурой в C++ состоит в том, что члены структуры являются общедоступными по умолчанию, а члены класса по умолчанию являются закрытыми. Помимо этого, два понятия взаимозаменяемы. –

+1

@PaulKeister: Члены и базы. –

ответ

4

Вы можете использовать тот же синтаксис, который используете для class. В C++ нет никакой разницы между ними, кроме спецификаторов доступа по умолчанию, которая равна public для struct и private для class. Смотрите здесь для подробного объяснения: Difference between struct and class

2

В C++ нет никакой разницы между структурой и классом, за исключением того, что элементы данных по умолчанию являются общедоступными в случае struct и частного в случае class.

Кроме того, существует два общих режим инициализации объектов в C++

1) Direct Initialization
2) Copy Initialization

+0

и, конечно, наследование по умолчанию, но это не относится к этому вопросу. – CashCow

+0

Участники и базы. –

+0

@Fred: Да! :) –

0

Оба способа является действительным. вы можете сделать это в любом случае.

Смежные вопросы