我是c ++的新手,我有一个项目,其中一个类引用了我将在下面提到的表单中的另一个类。我只想了解一个类的实际意义。对不起,我不打算发布我的程序,而只是提供一个例子,因为我想真正理解对类的引用意味着什么,而不是有人展示如何修复我的代码。
所以我想说我有两个班级Class_1和Class_2。我需要通过将两个参数传递给Class_1的构造函数来调用Class_2中的Class_1。
这就是Class_1构造函数在Class_1 cpp文件中的样子
Class_1::Class_1(int nRows, int nCols)
{
m_rows=nRows;
m_cols=nCols;
m_numSnakesDied=0;
display();
}
我需要以下列方式在Class_1头文件中声明Class_2
Class_1& class_1();
正如您所看到的,我需要从Class_1获取nRows和nCols才能调用Class_2。问题是我不明白这个Class_1& class_1();实际上意味着,我不知道如何初始化Class_1 s constructor from Class_2
的cpp文件。
对不起,如果我的解释很糟糕,英语是我的第三语言。
谢谢。
答案 0 :(得分:1)
你的问题有点不清楚。
您可以使用以下内容:
Class_1 a; // a is an instance of Class_1
Class_1& b = a; // b is a reference to an instance of Class_1 (a)
这样a和b就是完全相同的对象。
如果你需要构造函数的参数:
Class_1 c(2, 3); // c is an instance of Class_1.
// this will initialize c with nRows = 2 and nCols = 3
Class_1& d = c; // d is a reference to an instance of Class_1 (c)
至于您的示例代码:
Class_1& class_1();
这意味着class_1是一个返回对Class_1实例的引用的函数。所以也许你想要实现类似的东西:
Class_2 {
public:
Class_1& class_1() {
return a; // return a reference to an instance of Class_1 (a)
}
private:
Class_1 a; // an instance of Class_1
}
我建议您发布更完整的代码,以便我们提供帮助。 否则我们只是猜测你的问题是什么。
修改强> 删除引用临时的示例,因为它是不允许的。