C++用new创建类对象问题

C++用new创建类对象问题MyClass * a=new MyClass 用new 创建类对象 ,a是指向对象的指针,那对象名又是哪个

MyClass *a = new MyClass 这句话的意思是创建一个Myclass类型的指针a,并生成一个MyClass对象,使指针a指向这个对象。 这个对象是匿名对象没有名字。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-18
用关键字new生成的对象是无名的,只是在动态内存中利用构造函数生成一个新对象,且返回指向这个对象的指针,对于MyClass *a = new MyClass;,可以利用a->来访问该类的数据成员和成员函数,也可以用复制构造函数进行复制......,总之,除了名字和存储位置之外,与普通的类实例没有多大区别,不过要注意的是,在不需要该类对象时,要及时释放,并应与析构函数相互协调。
第2个回答  推荐于2017-09-22
CTest* pTest = new CTest();
delete pTest;
pTest用来接收类对象指针。
不用new,直接使用类定义申明:
CTest mTest;
此种创建方式,使用完后不需要手动释放,该类析构函数会自动执行。而new申请的对象,则只有调用到delete时再会执行析构函数,如果程序退出而没有执行delete则会造成内存泄漏。
2、只定义类指针
这跟不用new申明对象有很大区别,类指针可以先行定义,但类指针只是个通用指针,在new之前并为该类对象分配任何内存空间
第3个回答  2013-01-18
该对象没有名字,但可以解指针使用该对象,或者用引用 MyClass & b = *a; 那么b 和 *a 表示同一个对象了。如果MyClass b = *a;这样,a 和 b是2 个对象 只是里面的内容一样。
第4个回答  2013-01-18
a取内容不就是对象本身了么。或者MyClass * a=new MyClass MyClass b=*a;b就是对象了。
相似回答