Насколько мне известно, в первом сценарии я могу инициализировать объект *b с помощью оператора new, а во втором сценарии я могу инициализировать b используя список инициализации, если я не хочу использовать конструктор по умолчанию класса B. Что удобнее использовать?
Мои вопросы: предположим, у нас есть два класса A и B. Я хочу иметь объект B в классе A. Должен ли я использовать, [code]class A { public: A(); ~A(); B* b; }; [/code] или [code]class A { public: A(); ~A(); B b; }; [/code] Насколько мне известно, в первом сценарии я могу инициализировать объект *b с помощью оператора new, а во втором сценарии я могу инициализировать b используя список инициализации, если я не хочу использовать конструктор по умолчанию класса B. Что удобнее использовать?
Мои вопросы: предположим, у нас есть два класса A и B. Я хочу иметь объект B в классе A.
Должен ли я использовать,
class A
{
public:
A();
~A();
B* b;
};
или
class A
{
public:
A();
~A();
B b;
};
Насколько мне известно, в первом сценарии я могу...
Этот код отклоняется всеми компиляторами, на которых я мог бы его проверить, поэтому я полагаю, что он плохо образуется в соответствии со стандартом. struct X {
void f();
};
Этот код отклоняется всеми компиляторами, на которых я мог бы его проверить, поэтому я полагаю, что он плохо образуется в соответствии со стандартом. struct X {
void f();
};
У меня есть пользовательский класс контейнеров, принимающий указатель члена данных из типа элемента, используемого для обновления состояния. Поскольку связанное поле не считается частью состояния элемента и необходимо изменить в различных...