编译器将内存分为三部分:静态存储区域、栈、堆。静态存储区主要保管全局变量和静态变量,栈存储调用函数相关的变量、地址等,堆存储动态生成的变量, c 中是指由 malloc, 一般来说。fre 运算发生释放的存储空间, c++ 中就是指 new 和 delet 运算符作用的存储区域。方法 1ClassNam object param ;C++ 会为它分配足够的存放对象所有成员的存储空间。 这样就声明了一个 ClassNam 类型的 object 对象。C++ 创建对象时紧分配用于保存数据成员的空间,注意:为节省存储空间。而类中定义的成员函数则被分配到存储空间中的一个公用区域,由该类的所有对象共享。定义了一个这样的类: 例如。class Rec{public:int height Rec int width.;~Rec ;int getA rea ;private:int Rwidth;int Rheight;};当你 Rec myRec 5,5 ; 这样创建一个 myRec 对象。会得到 8 这个结果。 然后打印出 sizeof myRec ; 时候。一个 int 成员占 4 个字节,因为 myRec 中有 2 个 int 类型的数据成员。所以 myRec 对象占 8 个字节。内存分配是分配到栈中的由 C++ 缺省创建和撤销,这种方法创立的对象。自动调用构造函数和析构函数必需用 “ . 而不能用 “ -> . 如 myRec.getA rea 注意:该方法创建的对象调用类方法时。;方法二:ClassNam *object=new ClassNam param ;delet object;相同的都是堆上分配内存来创建对象的与上不同)不同的 C++ 用 new 创建对象时返回的一个对象指针,这种方法跟 java 有点类似。 object 指向一个 ClassNam 对象, C++ 分配给 object 仅仅是存放指针值的空间。而且,用 new 动态创立的对象必需用 delet 来撤销该对象。只有 delet 对象才会调用其析构函数。注意: new 创立的对象不是用 “ * 或 “ . 来访问该对象的成员函数的而是用运算符 “ -> ;4 例如: Rec *rec=new Rec 3.; rec->getA rea ; delet rec;顺便提一下:
C++创建对象方法分析
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《C++创建对象方法分析》
文章链接:https://www.skykkk.com/archives1928.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《C++创建对象方法分析》
文章链接:https://www.skykkk.com/archives1928.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
- 暂无文章