将 class 对象指针传递给默认构造函数(C++ 子例程)
Passing a class object pointer to default constructor (C++ Subroutines)
我正在做一项作业,涉及制作一个名为 Sub 的 class,它将代表子例程。 class 将包含一个带有四个参数的构造函数:名称(字符串)、指向其静态父对象的指针 object、数量参数和变量的数量。
如果静态父指针为 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 设置为 nullptr 的额外构造函数。
我正在做一项作业,涉及制作一个名为 Sub 的 class,它将代表子例程。 class 将包含一个带有四个参数的构造函数:名称(字符串)、指向其静态父对象的指针 object、数量参数和变量的数量。
如果静态父指针为 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 设置为 nullptr 的额外构造函数。