huangmingchuan / Cpp_Primer_Answers

《C++ Primer》第五版中文版习题答案

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

练习15.4(b)的答案的争议与解析

amelonpie opened this issue · comments

https://github.com/huangmingchuan/Cpp_Primer_Answers/tree/925506ca53f7b2e8501bc8eaaee3dba8c03d9ec2/ch15#%E7%BB%83%E4%B9%A0154

a)错误,因为类不能派生它本身(中文版P533)
b)正确。如果只是看P532“派生类的声明”这一节,会认为b是错误的“这是定义而不是声明”。而实际上,只要写在头文件.hpp里的都是声明,只不过声明分为了有定义的声明(比如该选项class Derived : private Base { ... // 这里面是Derived类的接口的声明} ;)和没有定义的声明(比如p532的最后一行代码和p533的第一行代码class Bulk_quote;)。up主可能是弄混了“实现”和“定义”的区别。实现是在.cpp资源文件里,而声明(无论是否定义)是在.hpp头文件里。