这个是动态分配吧,谁解释下这样的写法?

Trans* tran = NULL; //Trans是基类

tran = new TransRole(); //TransRole子类

DIEA
浏览 77回答 2
2回答

心有法竹

其实tran=new TransRole()这句话的意思呢就是先动态构造一个TransRole对象,然后将基类Trans的指针指向该对象。等价于:TransRole tr = new TransRole();tran = &tr;通过这样赋值,就可以实现c++中的动态绑定功能。如果Trans中一个成员函数是virtual,在TransRole中又重载了该函数,那么通过tran会调用TransRole中的函数。即动态绑定功能。

Qyouu

new的意思是分配空间内存将内存的首地址赋给tran
打开App,查看更多内容
随时随地看视频慕课网APP