基类: 原始类, 也就是最顶层的类
派生类: 也叫做继承类, 是也就是基类的子类, 是继承自基类的类
先来看定义的一个基类, 及对应的实现:
// tabtennis0.h
#ifndef TABTENNIS_H_
#define TABTENNIS_H_
#include <string>
using std::string;
// 基类
class TableTennisPlayer
{
private:
string firstname;
string lastname;
bool hasTable;
public:
TableTennisPlayer(const string & fn = "none",
const string & ln = "none", bool ht = false);
void Name() const;
bool HasTable() const {return hasTable;};
void ResetTable(bool v) {hasTable = v;};
};
#endif
第二个文件:
// tabtennis0.cpp
#include "tabtennis0.h"
#include <iostream>
// 构造函数, 使用了成员初始化列表的方法
TableTennisPlayer::TableTennisPlayer(const string & fn, const string & ln, bool ht): firstname(fn), lastname(ln), hasTable(ht)
{
}
void TableTennisPlayer::Name() const
{
std::cout << lastname << ", " << firstname;
}
第三个文件:
// usetabletennis.cpp
#include <iostream>
#include "tabtennis0.h"
int main(void)
{
using std::cout;
using std::endl;
TableTennisPlayer player1("Tom", "Biz", true);
TableTennisPlayer player2("Tara", "Boo", false);
player1.Name();
if(player1.HasTable())
cout << ": has a table " << endl;
else
cout << ": hasn't a table" << endl;
player2.Name();
if(player2.HasTable())
cout << ": has a table " << endl;
else
cout << ": hasn't a table" << endl;
return 0;
}
程序运行结果为:
下面我们来定义一个派生类(java中的