用C ++重新定义类

时间:2014-12-02 18:45:17

标签: c++ class header friend-function

我是C ++的新手,遇到了一个名为

的错误问题

“语义问题:重新定义'B'cB.h”。

我有两个类,A和B,其中cA应该通过引用处理cB的Object和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-object。我知道一些解决方法,但这不是我的意图,我想学习如何以正确的方式处理这个问题。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

#ifndef HEADER_NAME
#define HEADER_NAME

您也可以使用#pragma once