C++ 将内存分配给派生类的指针
我有基类“Actor”和派生类“Outlaw” “Outlaw”曾经是它自己的基类,我可以使用以下代码轻松创建指针:C++ 将内存分配给派生类的指针,c++,class,inheritance,pointers,C++,Class,Inheritance,Pointers,我有基类“Actor”和派生类“Outlaw” “Outlaw”曾经是它自己的基类,我可以使用以下代码轻松创建指针: Outlaw * outlaw = new Outlaw(); 现在“亡命之徒”继承了基类型“演员” 我该如何编写新代码来生成指向非法类的指针?我对C++很陌生,但是有很多C经验。p> 完全一样 但首先,也许你不需要一个动态分配的实例,也许你只需要一个变量。在这种情况下,仅仅声明变量,因为由于C++中的其他所有东西的速度,动态分配是昂贵的(所有的东西都是相对的,动态分配相对于普
Outlaw * outlaw = new Outlaw();
现在“亡命之徒”继承了基类型“演员”
我该如何编写新代码来生成指向非法类的指针?我对C++很陌生,但是有很多C经验。p> 完全一样
但首先,也许你不需要一个动态分配的实例,也许你只需要一个变量。在这种情况下,仅仅声明变量,因为由于C++中的其他所有东西的速度,动态分配是昂贵的(所有的东西都是相对的,动态分配相对于普通变量声明来说是昂贵的)。例如:
如果您确实需要动态分配,最好不要将指针原始存储
立即将其放入智能指针中,例如std::shared_ptr
或std::unique_ptr
:
std::unique_ptr<Outlaw> outlaw( new Outlaw() );
std::unique_ptr unlaw(new unlaw());
要使用上述智能指针类,只需包含
,unclaw*unclaw
中的unclaw
已经是指向unclaw
的指针。你想要达到什么?最好马上忘记C经验,从头开始学习C++。他们真的,真的没有那么相似。
std::unique_ptr<Outlaw> outlaw( new Outlaw() );