c++primer中关于头文件和类定义的一个问题?

那要看你需要定义的类在程序中扮演一个什么样的角色。比如我要制作一个没有AI的象棋程序,那么棋子类chess的地位非常的高。这个类就要负责放置、移动、攻击棋子,main函数只需要处理游戏流程即可。这种情况下可以将成员的定义放在源文件内,头文件只需要包含成员声明。而有些类虽然重要,但是只是实现整个程序功能的一个工具而已,例如string类。假设你需要制作一个可以对对子的程序,这个程序的重点是检测上联的词语并给出下联对应的词语。这时候string的作用只是作为汉字的容器,不是核心算法的组成部分。这种情况下我们只需要知道string类可以提供哪些操作汉字的功能,那么一句#include \u0026lt;string\u0026gt;就已足够。
■网友
那些说“类的声明”的实际是在说类的定义,说“类的定义”的实际是类成员函数的定义书上的提法更合适
■网友
说法不同而已,其实表达一个意思。类的定义(没有写成员的具体实现)写在头文件里,类的具体实现写在cpp里,并且包含类定义的头文件我觉得是这样的
■网友
两者是一个意思,第一个说法的定义和你理解的定义不是一个意思。直白来说,相信第二种说法,但是你要明白,第一种说法也是对的,只是有了歧义。


    推荐阅读