C ++对类的引用

时间:2015-04-06 03:17:50

标签: c++

我是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文件。

对不起,如果我的解释很糟糕,英语是我的第三语言。

谢谢。

1 个答案:

答案 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
}

我建议您发布更完整的代码,以便我们提供帮助。 否则我们只是猜测你的问题是什么。

修改 删除引用临时的示例,因为它是不允许的。