C++中的定义跟声明详解

    xiaoxiao2021-12-14  21

    "声明"的严谨C++语意,是用以告诉编译器类型及其细节,例如:

    class MyClass { //数据成员细节... //成员函数细节... };

    上述声明仅告诉编译器有自定义类型MyClass,编译器仅对其进行语汇分析及名字的决议,并未占用内存!

    "定义"的严谨C++语意,即分配内存,编译器将在相对内存地址上为其对象定址!

    要注意的是,我们不能简单的说

    string myString;

    是声明还是定义,判断的原则是看是否占用内存。例如:

    class MyClass //类的声明,无内存占有 { string myString; //string的声明 };

    但是

    #include<iostream>   //全局作用域 string myString;//定义,myString是实例化的string!   int main() { //Main函数体内 string myAnotherString;//定义,myAnotherString是实例化的string! return 0; }

    变量和对象不加extern永远是定义,类中的除外。  函数只有函数头是声明,有函数体的是定义。  自定义的类永远只是声明。类只有在实例化的时候才会分配内存空间

    (类这里不知道到底对不对,关于类占有内存空间详细见 http://blog.csdn.net/yimingsilence/article/details/53447436 )

    转载请注明原文地址: https://ju.6miu.com/read-971032.html

    最新回复(0)