フレンド関数について読んだだけで、クラス B のフレンド関数「Print」を使用して、クラス A のプライベート変数「number」にアクセスしようとしています。Visual Studio で作業しています。コードをコンパイルすると、次のようなさまざまなエラーが多数発生します。
C2011: 'A': 'class' 型の再定義
C2653: 'B': はクラスまたは名前空間の名前ではありません
私と一緒に辛抱強く、私の目標を達成するための適切な方法を示してください。
ここに私のファイルがあります:
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;
}
Bh:
#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();
}