我是沛哥 2015-07-07 19:26 采纳率: 0%
浏览 2195

VC 两个文件包涵同一个头文件 提示变量重定义

总共四个文件。分别是定义main函数的text.cpp
定义了一个类 的 a.cpp和a.h
还有一个b.h

text.cpp代码

#include "a.h" 
#include "b.h"

int main()
{
    //some code
}

a.h代码

#pragma once

class Ca
{
    //some code
};

a.cpp代码

 #include "a.h"
#include "b.h"
    //some code

b.h代码

 #pragma once

#include "a.h"

Ca cc;
    //some code

编译链接出错

 1>正在编译...
1>text.cpp
1>a.cpp
1>正在生成代码...
1>正在链接...
1>a.obj : error LNK2005: "class Ca cc" (?cc@@3VCa@@A) 已经在 text.obj 中定义
1>F:\工程\Visual Studio 2008\Projects\gf\Debug\gf.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
  • 写回答

5条回答

  • 知常曰明 2015-07-07 21:59
    关注

    text.cpp,include后加

     Ca cc;
    

    在b.h中,

     Ca cc;
    

    改为

     extern Ca cc;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办