声明和定义
可能重复:
定义和声明有什么区别?
这两个术语我对变量非常困惑。 在某些书中,它似乎是一样的,但在一些书中却完全不同。 任何人都可以告诉我,变量或函数声明的含义是什么,变量或函数定义的含义是什么?
声明就像告诉机器你想说的那样,变量“x”存在,你也可以设置它。
定义一个变量就是把它设置成某种东西。
(可能是错的,这是我想到的方式)
一个声明告诉编译器存在一些东西,但不一定提供它的代码或值。 例如,如果你声明了一个函数:
void foo();
你告诉编译器该函数的名称及其参数(本例中没有)和返回类型,以便它可以正确地编译调用函数 - 即使函数的实际代码还没有提供。 在程序的其他地方,也许在不同的源文件中,您提供了一个定义:
void foo() {
std::cout << "Hello, world!" << std::endl;
}
如果你定义的东西还没有被声明,定义也可以作为一个声明。
通常情况下,您将定义放在源文件中,并在头文件中声明,以便除了包含定义的文件之外,它们可以被其他源文件“看到”。 但是,在C ++中,当你编写一个类时:
class Blah {
public:
void blah();
private:
int x;
};
这是该类的定义,其中包含其成员的声明。 类定义通常放在头文件中,尽管成员函数的定义通常不会(除了模板和内联函数)。
阅读关于编译和链接工作原理的答案,您可能会发现它很有帮助。
链接地址: http://www.djcxy.com/p/40633.html上一篇: Declare And Define