-1

我是 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 对象。我会知道一些解决方法,但这不是我的意图,我想学习如何以正确的方式处理这个问题。

所以提前感谢您的帮助!

4

1 回答 1

1

这种类型的错误通常是由于缺少包含守卫而发生的。最简单的方法是:

#ifndef HEADER_NAME
#define HEADER_NAME

您也可以使用#pragma 一次

于 2014-12-02T18:54:36.920 回答