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

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";会报错,而不会
??
难道有什么不一样么?
...全文
483 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
开心秋水 2017-11-16
  • 打赏
  • 举报
回复
const char const * pchar = "aaa";
paschen 2017-11-15
  • 打赏
  • 举报
回复
VS下是没问题的,当然建议你把这些全局变量放到一个CPP文件,其他文件使用再用extern进行声明
jena_wy 2017-11-15
  • 打赏
  • 举报
回复
用vs编译的时候构造函数有问题,demo();函数改成demo(){};
老马何以识途 2017-11-15
  • 打赏
  • 举报
回复
不科学啊,看起来没问题的。
CT8100 2017-11-15
  • 打赏
  • 举报
回复
引用 2 楼 cfjtaishan 的回复:
如果只是两个文件,以头文件,一个main.cpp源文件,不会出现这样的错误; 如果还出,建议加上extern
嗯嗯嗯嗯嗯
自信男孩 2017-11-15
  • 打赏
  • 举报
回复
如果只是两个文件,以头文件,一个main.cpp源文件,不会出现这样的错误; 如果还出,建议加上extern
CT8100 2017-11-15
  • 打赏
  • 举报
回复
。。。如果你的代码真是这样,应该是没有错误,至少我这是编译通过了。。。 multiple definition of 问题一般是多个文件包含同一个头文件。。。.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧