我是沛哥 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;
    
    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面