所以我对Qt和C++都是新手,但我想弄清楚下面的代码是怎么回事。
我有一个头文件和源文件charinfowindow。在我拥有的源文件中:
using namespace std
在头文件中
namespace Ui {
class CharInfoWindow;
}
我试着找出这些代码在网上做什么,但我只是在找关于如何做的资源。
如果有人能告诉我,首先,这些代码是做什么的,其次,他们为什么这样做。不胜感激。
谢谢
不管怎么说,使用namespace std
被认为是一种糟糕的做法。如果您不想一直说std::cout
,您可以:
使用STD::COUT;使用STD::ENDL;
等。这意味着你不会把整个世界都拉进范围。
但简而言之:
使用命名空间标准;
这意味着您不必像没有std::
那样将其放在所有东西前面。
另一半--forward声明--它只是将类放在给定的名称空间中,而不使整个include文件变得很大:
namespace UI {
... everything
}
“使用命名空间std”意味着在此源文件中,使用来自此命名空间的类型时不必使用std::前缀(例如,可以编写string而不是std::string)。
头文件中的“class xxx;”是类xxx的“向前声明”。它告诉编译器“存在一个类xxx”,这样它就可以依靠它了。但是,类的定义在别处(在另一个头文件中)。