我从来没有真正理解为什么C++需要一个单独的头文件,其功能与.cpp文件相同.它使创建类和重构它们变得非常困难,并且它为项目添加了不必要的文件.然后是必须包含头文件的问题,但必须明确检查它是否已被包含.
C++于1998年获得批准,那为什么这样设计呢?单独的头文件有哪些优点?
当我包含的所有内容都是.h文件时,编译器如何找到带有代码的.cpp文件?是否假设.cpp文件与.h文件具有相同的名称,或者它是否实际查看目录树中的所有文件?
考虑printf:
int printf ( const char * format, ... );
Run Code Online (Sandbox Code Playgroud)
用于描述...和使用它的函数的术语是什么?我一直称它为省略号,但这就像调用&"&符号运算符".
我对const版本和非const版本成员函数非常困惑,如下所示:
value_type& top() { return this.item }
const value_type& top() const { return this.item }
Run Code Online (Sandbox Code Playgroud)
这两个功能有什么区别?在什么情况下他们会被使用?
这来自<iostream>:
namespace std
{
extern istream cin; ///< Linked to standard input
extern ostream cout;
...
Run Code Online (Sandbox Code Playgroud)
似乎通过使用extern其他命名空间中定义的数据类型将可用?