C++包含头问题

Rn2*_*2dy 7 c++

我是c/c ++的新手,我对以下内容感到困惑:

  1. 我是否应该将类声明放在自己的头文件中,并将实际实现放在另一个文件中?
  2. 我是否应该<iostream>在example.h文件或example.cpp文件中放置标题?
  3. 如果所有类都需要使用<iostream>,并且我将一个类的头文件包含在另一个类的头中,这是否意味着我包含了<iostream>两次?
  4. 如果我使用很多STL课程,使用什么是好习惯std::

Amo*_*tir 8

1.我是否应该将类声明放在自己的头文件中,并将实际实现放在另一个文件中?

如果要操作模板,可以在同一个头文件中分别编写类的定义和类成员的定义.此外,如果要使您的成员内联函数,您可以在类定义本身内定义它们.在任何其他情况下,最好将类(.hpp文件)的定义与类(.cpp)成员的定义分开.

2.我是否应该在example.h文件或example.cpp文件中放置标题?

它取决于您是否只需要example.h文件或.cpp文件中的那些标头.

3.如果所有类都需要使用,并且我将一个类的头文件包含在另一个类的头中,这是否意味着我包括两次?

如果您不通过以下宏包装类定义,则会发生这种情况:

#ifndef FOO_HPP
#define FOO_HPP
class { 
...
};
#endif
Run Code Online (Sandbox Code Playgroud)

5.如果我使用很多STL课程,使用std ::是什么好习惯?

我认为每次你都可以使用它std::而不是更好using namespace std.这样,您将只使用您需要的命名空间,并且您的代码将更具可读性,因为您将避免命名空间冲突(想象两个具有相同名称且属于两个不同命名空间的方法).

但最重要的是,问题4在哪里呢?