Передача указателя на объект класса в конструктор по умолчанию (подпрограммы C ++)

Я работаю над заданием, которое включает создание класса с именем Sub, который будет представлять подпрограммы. Этот класс будет включать конструктор с четырьмя аргументами: имя (строка), указатель на его статический родитель объект, количество аргументов и количество переменных.

Если статический родительский указатель равен NULL, то у объекта нет родителя. Я застрял на том, как я могу передать указатель в качестве одного из аргументов в конструктор, особенно если я хочу, чтобы указатель был NULL для представления первой подпрограммы. Это то, что я до сих пор:

class Sub
{
public:
Sub(); //constructor
Sub::Sub(string sName, Sub &sParent, int sNumberofArguments, int sNumberofLocalVariables); // default constructor

private:
string name;
Sub * parent;
int numberOfArguments;
int numberOfLocalVariables;
};

Sub::Sub(string sName, Sub &sParent, int sNumberofArguments, int sNumberofLocalVariables)
{
name = sName;
parent = &sParent;
numberOfArguments = sNumberofArguments;
numberOfLocalVariables = sNumberofLocalVariables;
}

int main(){
Sub first("first", NULL, 4, 5); //ERROR
Sub second("second", first, 3, 6);
}

0

Решение

Либо заставь своего конструктора взять Sub * вместо Sub &или создайте дополнительный конструктор, который не Sub & и устанавливает родителя в nullptr внутри.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]