头文件声明变量重复定义问题

在头文件中声明变量,在多个cpp文件引用,报错:重复定义。

#头文件
int a;

原因:此处声明变量a为全局变量(静态区存储),类型为定义申明,分配了空间。多个文件引用该头文件,则,全局变量重复定义。
具体原因:
头文件声明变量重复定义问题_第1张图片
解决方法:1、定义为const常量:const常量链接性为内部,相当于引用的每一个cpp文件定义一个独立的 int a;
2、声明为extern int a;同时需要在一个cpp文件中定义:int a;

你可能感兴趣的:(C++,Primer,plus笔记,c++)