在头文件定义引起重复定义的问题。

caiwei_cs 伟诺机电 电子工程师  2017-11-15 11:04:28
main.cpp

#include "demo.h"
int main(int argc, char *argv[])
{
demo _demo;
return 0;
}

demo.h

#ifndef DEMO_H
#define DEMO_H

const char * pchar = "aaa";
const char objConstChar('a');
static char *pStaticChar = "bb";
class demo
{
public:
demo();
};

#endif // DEMO_H


报错:
demo.o:-1: error: multiple definition of `pchar'

问题,我将变量定义在头文件中。
不过为什么const char * pchar = "aaa";会报错,而不会
??
难道有什么不一样么?
...全文
324 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
baidu_37097818 2017-11-16
const char const * pchar = "aaa";
  • 打赏
  • 举报
回复
paschen 2017-11-15
VS下是没问题的,当然建议你把这些全局变量放到一个CPP文件,其他文件使用再用extern进行声明
  • 打赏
  • 举报
回复
jena_wy 2017-11-15
用vs编译的时候构造函数有问题,demo();函数改成demo(){};
  • 打赏
  • 举报
回复
不科学啊,看起来没问题的。
  • 打赏
  • 举报
回复
CT8100 2017-11-15
引用 2 楼 cfjtaishan 的回复:
如果只是两个文件,以头文件,一个main.cpp源文件,不会出现这样的错误; 如果还出,建议加上extern
嗯嗯嗯嗯嗯
  • 打赏
  • 举报
回复
自信男孩 2017-11-15
如果只是两个文件,以头文件,一个main.cpp源文件,不会出现这样的错误; 如果还出,建议加上extern
  • 打赏
  • 举报
回复
CT8100 2017-11-15
。。。如果你的代码真是这样,应该是没有错误,至少我这是编译通过了。。。 multiple definition of 问题一般是多个文件包含同一个头文件。。。.
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-15 11:04
社区公告
暂无公告