У меня есть класс, который принимает два аргумента в своем конструкторе: int и void (*) (void) , поэтому обычно, когда мне нужно вызвать его, я делаю это следующим образомthis:
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);
}
Спасибо!
(Пожалуйста, не обращайте внимания на семантику, потомок-родитель не имеет ничего общего с наследованием, просто не могу сейчас придумать более подходящие имена)