
Сообщение от
Chelioss
Вы имеете в виду это?
Код C++
1
*A a = { value1, ..., valuen };
В этом случае зададутся значения value1...valuen, а не мусор.
Рассмотрим пример:
C++ |
1
2
3
4
5
6
7
| struct STest { int a; };
STest test = {5}; //можно. Так как данные-члены паблики
class CTest { int a; };
CTest test1 = {5}; //нельзя. Так как данные-члены приватные
//error C2552: test1: инициализация не агрегированных
//данных с помощью списка инициализации не допускается |
|
Думаю, очивидно, что подобная инициализация данны-членов для класса (а не структуры) - ущербна.
Мораль: не хотите проблем, и быдлокода на с++, пишите в рамках парадигмы с++, а не сишного суржика.
Каноническая форма записи класса: всегда есть конструктор по умолчанию, копирующий, деструктор, безопасный метод clear();