头文件中一定不要有实现部分,除非不可避免,如变量赋值、函数定义等;
实现部分尽量放在头文件对应的源文件中,即.cpp中,这样可以防止文件重复包含统一头文件时引起的变量重定义问题;
在这里举个例子-> namespace的定义
如果将namespace的定义和实现都放在.h文件中,那么当有两个文件同时需要用到该namespace中的名称时在vs2016中一定会引起报错;
将namespace的声明部分放在.h文件中,而将其定义在.cpp的源文件中则不会出现这种问题。
如将名称空间定义如下则在对个文件中调用时会出现重定义错误:
#ifndef _PARAMETERS_H
#define _PARAMETERS_H
namespace Parameters
{