用常量表达式初始化的const对象一般都可以定义在头文件中。这样,无论该const对象何时使用,编译器都能够引用其初始值,并能保证多个文件引用的是相同的值
不是用常量表达式初始化的const对象一般都不应该定义在头文件中
。相反,和普通的非const对象一样,该const对象应该在某个
源文件
中定义和初始化,并在头文件中为它添加
extern
声明,以使其能被多个文件共享
也就是说: 头文件:
#pragma once
#include<iostream>
using namespace std;
const int zx = 111;
constexpr unsigned lcz = 001;
extern int ozy; //extern声明于头文件, 定义于工程文件
cpp(工程文件)
int ozy = 666;
cpp(main)
#include"FileName.h"
int main()
{
cout << zx << endl;
cout << lcz << endl;
cout << ozy << endl;
}