我是沛哥 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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题