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

标签 c++ class pointers object subroutine

我正在进行一项作业,该作业涉及制作一个名为 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 & 并将父级设置为内部为 nullptr。

关于c++ - 将类对象指针传递给默认构造函数(C++ 子例程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47491742/

相关文章:

c++ - 转换需要reinterpret_cast、C 风格转换或函数风格转换

c++ - 将标志传递给方法的替代方法?

Java 反射 : get instances of a given class found by entering its name?

Java 保龄球程序 - 添加第 10 帧

c - 将 printf 与指向 float 的指针一起使用会产生错误

c++ - 立方体在 OpenGL 中的位置

c++ - LSB 应用程序检查器 : GCC links against unused libraries

python - 如何在 Python 中激活(执行)类的方法?

C++ 最小/最大函数错误 (C2665)

C++ 多维数组和指向指针表的指针