与java相比,c++的继承个人觉得有点复杂,复杂在构造函数上,java中派生类实现基类的构造函数直接super关键字,就可以实现,c++中则要通过实现构造函数,看下面的例子
特别说明的是:基类的希望派生类实现的函数一定要用virtual 标明为虚函数,虚函数是c++实现动态绑定的关键,基类的虚函数,基类一定要实现,不然则会编译不通过,派生类可以不实现虚函数而用基类的函数执行。
纯虚函数:
virtual void setRoomName()=0;
如果一个类的函数全部都是纯虚函数,则这个类不能有自己类的实现(包括引用和指针),只能通过派生类继承实现(这点和java的接口类似)
首先基类的实现:
基类Room的头文件代码
#pragma once
#include <string>
#include <iostream>
using std::string;
class Room
{
public:
Room(string roomName);
~Room();
private:
strin