朋友们!我正在学习 C++,最近遇到了这个问题:
有这个代码:
#include <iostream>
struct Point {
Point(int xin, int yin) { x = xin; y = yin; }
int x;
int y;
} s(3, 4);
int main() {
std::cout << s.x << std::endl;
}
因此,正如我们所看到的,这里是在结构本身声明之后立即声明结构实例。问题是:为什么要这样做?我应该使用这个还是单独写更好
Point s(3, 4);
在同一个全局范围内?
就可读编程而言,这样做很好吗?
先感谢您!
答:不,你不应该那样做!通常的做法是将声明和实现分开。声明仅存在于编译阶段,并且通常放置在 h 文件中。实现,粗略地说,就是编译后实际占用可执行文件空间的东西,比如代码或程序数据。因此,
Point这个例子中的结构声明是,我为重言式道歉,声明))并且类型变量的声明Point已经涉及实现。这意味着它们应该分开。例如像这样:...
如果程序很小,那么当然没有必要将它分成两个文件,但同样的,声明和实现应该相互分离。源文本应划分为区域。通常,首先是 include,然后是宏定义 (#define),然后是结构、类和其他数据类型的声明。然后是全局变量的声明(如果有的话),在它们之后 - 函数(实际代码)。