【发布时间】:2014-12-02 18:45:17
【问题描述】:
我是 C++ 新手,遇到了一个名为“错误”的问题,称为
“语义问题:'B' cB.h 的重新定义”。
我有两个类,A 和 B,其中 cA 应该通过引用处理 cB 的对象和 cA 的一个友元函数 fExample。代码是这样的:
.h 文件 cA:
#include "cB.h"
class A{
int val1, val2;
public:
friend void fExample(int, cB &);
};
.h 文件 cB:
class B{
int val1, val2;
public:
void set_val1(int);
};
.cpp 文件 cB:
#include <iostream>
#include "cB.h"
using namespace std;
void B::set_val1(int tVal){
val1 = tVal;
}
对我来说,似乎没有办法通过引用 cA 的友元函数来处理 cB 对象。我会知道一些解决方法,但这不是我的意图,我想学习如何以正确的方式处理这个问题。
提前感谢您的帮助!
【问题讨论】:
-
重新定义
B?B在哪里? -
对不起,应该有'class B',而不是'class cB'。我在上面的代码中写错了。
-
缺少包括警卫?
-
@DonMan 引用也是允许的。
标签: c++ class header friend-function