作业帮 > 综合 > 作业

C++里面,如何这样定义类:类A里面调用B的引用,类B里面调用类A的引用.可不可以写在一个文件里面?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/25 19:26:12
C++里面,如何这样定义类:类A里面调用B的引用,类B里面调用类A的引用.可不可以写在一个文件里面?
A写在前面,编译器就说找不到B,B写在前面,编译器就说找不到A.
解决了最多加到100分!
代码编辑器没有报错,但是编译器就是过不了.
我分开写的时候也有问题.不知道什么原因……
#include<iostream>
using namespace std;
class B;
class A
{
public:
    A(){a=1;}
    void print(B& b) 
    {
        cout<<"b"<<endl;
    }
    int geta()
    {
        return a;
    }
private:
    int a;
};
class B
{
public:
    B(){b=2;}
    void print(A& a)
    {
        cout<<a.geta()<<endl;
    }
    int getb()
    {
        return b;
    }
private:
    int b;
};
void main()
{
    A a;
    B b;
    a.print(b);
    b.print(a);
}
再问: 我想问问,类的引用作为另一个类的私有属性。我需要能够调用这个引用变量的方法。
再答: 上面的class Mediator只是声明了,有这个类,但是它的方法没有加载到内存中,所以报错了,建议你把各自的类写成。h文件
再问: 是不是必须要分开写?
再答: 我感觉你这样设计有问题,我认为只声明是访问不了他的成员,可以用friend 类,解决这问题