将类对象指针传递给默认构造函数(C 子例程)

Passing a class object pointer to default constructor (C++ Subroutines)

本文关键字:构造函数 子例程 默认 对象 指针      更新时间:2023-10-16

我正在处理一个分配,该分配涉及制作一个名为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); 
}

使您的构造函数取用Sub *而不是Sub &,或者制作一个不服用Sub &的额外构造函数,并将parent设置为内部。