小编Jay*_*k84的帖子

c ++将派生类分配给基类的更好方法

这似乎是一个愚蠢的问题,但我希望能够实例化派生类并将其分配到一行中的基类:

class A { };
class B : public A { };

// i can do this
A *base;
B derived;
base = &derived;

// i'd like to do something like this
A *base;
base = &B(); // produces a warning: taking address of temporary
Run Code Online (Sandbox Code Playgroud)

我试图在不使用new运算符的情况下获得多态行为.我认为编译器正在插入构造函数的返回值的临时引用.是否有可能指示编译器我实际上想要使用该地址进行分配?

*编辑

这是一个小背景.解析xml文件时我有类似的东西:

class element { virtual void load_xml(...); };
class city : public element { ... };
class state : public element { ... };

element *base;
// read some xml

if (xml_node …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism

5
推荐指数
1
解决办法
943
查看次数

标签 统计

c++ ×1

polymorphism ×1