定义和声明之间有什么区别?

定义和声明之间有什么区别?定义和声明之间有什么区别?定义和声明之间有什么区别?

翻阅古今
浏览 859回答 5
5回答

慕的地8271018

C ++中有一些有趣的边缘情况(其中一些也在C中)。考虑T t;这可以是定义或声明,具体取决于类型T:typedef void T();T t; // declaration of function "t"struct X {&nbsp;&nbsp; T t; // declaration of function "t".};typedef int T;T t; // definition of object "t".在C ++中,使用模板时,还有另一种边缘情况。template <typename T>struct X {&nbsp;&nbsp; static int member; // declaration};template<typename T>int X<T>::member; // definitiontemplate<>int X<bool>::member; // declaration!最后一个声明不是定义。它是静态成员的明确特化的声明X<bool>。它告诉编译器:“如果要实例化X<bool>::member,那么不要从主模板中实例化成员的定义,而是使用在别处找到的定义”。要使其成为定义,您必须提供初始化程序template<>int X<bool>::member = 1; // definition, belongs into a .cpp file.

慕哥9229398

宣言声明告诉编译器存在程序元素或名称。声明将一个或多个名称引入程序。声明可以在程序中多次出现。因此,可以为每个编译单元声明类,结构,枚举类型和其他用户定义的类型。定义定义指定名称描述的代码或数据。必须先声明名称才能使用它。
打开App,查看更多内容
随时随地看视频慕课网APP