Alg*_*Man 1 c++ virtual-functions
我可以上课吗?
教室{〜室(); virtual cost()= 0; }
Class Hotel {地图房;/**/};
我的酒店会变得抽象吗?它可以保存从Room派生的具体Room对象列表吗?
小智 5
您编写的代码不是有效的C++.如果你的意思是:
class Room{
~Room();
virtual int cost() =0;
};
Run Code Online (Sandbox Code Playgroud)
然后是的,这个课是抽象的.你不能再像这样创建一个地图:
map <int, Room> rooms;
Run Code Online (Sandbox Code Playgroud)
但你可以这样:
map <int, Room *> rooms;
Run Code Online (Sandbox Code Playgroud)
假设您有一个派生自Room的类SingleRoom并实现cost(),您可以说:
rooms.insert( make_pair( 101, new SingleRoom ) );
Run Code Online (Sandbox Code Playgroud)
另请注意,抽象类必须具有虚拟析构函数.