c++实例化一个对象

我想知道c++实例化一个对象的具体意义。难道是像有些书中说的那样是为了分配内存空间吗。而我想类中的成员函数的代码必须在编译好的程序中就已经存在,而数据成员通过实际分配的内存储存数据是可以理解的,那成员函数呢。实例化有具体意义吗,可以通过定义静态成员函数来实现不去实例化一个对象而使用成员函数,这在我看来有点奇怪。我现在设想可能是编译好的程序确实已经存在那段代码只是没有读入内存需要通过实例化对象来读入。但是我一想这样的实现似乎是不可能的,具体都我三言两语说不清。很多类似的这些疑问常常使我很痛苦,我想要通过翻阅资料却经常是买来一本资料它的内容却需要另外的一些知识作铺垫导致我买了很多书暂时只能是搁置。我很希望结识一些真正的高手,我一个人摸索没有人指路许多时候走了弯路显得有些盲目,浪费了很多的时间。希望高手给与指点,如果一时半会讲不清楚请告诉我应该看那些书。谢谢!!!

实例化就是给,数据成员分配内存,构造对象。对象的成员函数和普通函数的区别就是,成员函数有个指向当前对象的this指针,可以访问对象的成员变量,其依赖于对象。静态函数就更像一个全局函数,没有this指针,可以通过类名直接访问,可以被对象的成员函数访问,静态函数只能访问类的静态成员。这些可访问属性是由编译器来实现的,编译之后就没有对象、成员这些东西了,都是数据和方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-08-01
A a;
A * a = new a();
以上两种方式皆可实现类的实例化,有new的区别在于:
1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
2.不加new在堆栈中分配内存
3.大程序用new,小程序直接申请
4.只是把对象分配在堆栈内存中
5.new必须delete删除,不用new系统会自动回收内存
第2个回答  2015-10-09
可以用new(在堆中):

Computer *a = new Computer(...);
也可以直接创建(在栈中):
Computer a(...);
相似回答