只是阅读关于朋友函数,我试图从类B访问类A中的私有变量“number”和朋友函数“Print”。我正在使用Visual Studio。我的代码编译给了我大量的各种错误,如:在C++中使用朋友函数
C2011: 'A': '类' 类型的重新定义
C2653: 'B':不是类或命名空间名称
请耐心等待我,并展示实现我目标的正确方法。
这里是我的文件 A.H:
class A
{
public:
A(int a);
friend void B::Print(A &obj);
private:
int number;
};
A.cpp:
#include "A.h"
A::A(int a)
{
number=a;
}
B.h:
#include <iostream>
using namespace std;
#include "A.h"
class B
{
public:
B(void);
void Print(A &obj);
};
B.cpp:
#include "B.h"
B::B(void){}
void B::Print(A &obj)
{
cout<<obj.number<<endl;
}
main.cpp中:
#include <iostream>
#include <conio.h>
#include "B.h"
#include "A.h"
void main()
{
A a_object(10);
B b_object;
b_object.Print(A &obj);
_getch();
}
提示:类'B'实际上并不需要知道'A'的细节,它只需要知道类A'_exists_。 –
删除'friend void B :: Print(A &obj);',加上'friend class B;'或者跟随Mooning Ducks tip。 – andre
在Bh删除 '#include“啊”' 并加上 'class A;'然后add '#include“Ah”'in B.cpp – Ben