У меня есть класс, который принимает два аргумента на его конструктор, INT и недействительных (*) (аннулируется) так обычно когда мне нужно позвонить это я делаю это так:класса с не-конструктором по умолчанию, в пределах класса (C++)
obj_child (int_value, pointer_to_foo);
Теперь я хочу, чтобы создать экземпляр obj_child с постоянными аргументами, внутри другого класса.
Так что я пробовал:
class obj_parent
{
private:
obj_child child_instantiation (int_value, pointer_to_foo);
};
, но это, кажется, дает мне две ошибки компилятора на линии Заявляю child_instantiation, так что я предполагаю, что аргументы не могут быть переданы там, но где-то в другом месте.
Ум вы child_instantiation s должны иметь одни и те же аргументы для всех obj_parent конкретизации, поэтому они не должны быть переданы в качестве obj_parent аргументов конструктора.
Объявление указателя класса, а затем создание нового в куче компиляции, но я не хочу этого делать, и я не знаю, работает ли он (мой отладчик не может посмотреть ссылку, так что это очень сложно контролировать его значения).
class obj_parent
{
private:
obj_child *child_instantiation;
};
obj_parent::
obj_parent (void)
{
child_instantiation = new obj_child child_instantiation (int_value, pointer_to_foo);
}
Спасибо!
(Пожалуйста, не возражает семантику, ребенок - родитель не имеет ничего общего с наследованием, просто не могли думать лучше имен прямо сейчас)
Спасибо, что работали! –