練習問題

"theMain.cpp"
#include <iostream>
 
class vehicle
{
	float nenpi;//燃費
	float fuel;//燃料
public:
	vehicle() {/*省略*/ };
	~vehicle() {/*省略*/ };
	virtual void Run() {/*省略*/ }; //走る
	virtual void Stop() {/*省略*/ }; //止まる
	virtual void Turn() {/*省略*/ }; //曲がる
};
 
class DumpTruck
	: public vehicle
{
	float loadWeight;//積載量
public:
	DumpTruck() {/*省略*/ };
	~DumpTruck() {/*省略*/ };
	void Run() {/*省略*/ };
	void Stop() {/*省略*/ };
	void Turn() {/*省略*/ };
	void Dump() {/*省略*/ };//ダンプカーで土を捨てる
};
 
class Bulldozer
	: public vehicle
{
	float bladeWidth;//ブレード幅
public:
	Bulldozer() {};
	~Bulldozer() {};
	void Run() {/*省略*/ };
	void Stop() {/*省略*/ };
	void Turn() {/*省略*/ };
	void BullDoze() {/*省略*/ }; //ブルドーザーで土を押す
};
 
using namespace std;
 
int main()
{
 
         //ごにょごにょ
	return 0;
}

問題 1

① DumpTruckクラスのメンバ関数 Run() を以下の様に書こうと思ったら、vehcleクラスを継承しているはずなのに。エラーが出ました。 どうしてですか?

void DumpTruck::Run() {
	fuel -= 10;	
};

② 上のエラーを修正するには、どうするのがよさそうですか?(授業で習った方法で!)

問題 2

①その1 mainに
DumpTruck型
BullDozer型
オブジェクトをひとつづつ作りなさい。 また、このオブジェクト=クラスの実体の事を何と呼ぶか答えなさい。

②その2 mainに、
DumpTruck型
BullDozer型
オブジェクトのオブジェクトへのポインタ変数をそれぞれ1個ずつつくり、何も指さないポインタで初期化しなさい。

③その3 ②でつくったポインタ変数に対して、 DumpTruck型のクラスの実体
BullDozer型のクラスの実体
を、動的に確保してそのアドレスをポインタ変数に代入しなさい。

④その4 ②でプログラムを動かしたときは、vehcle型のデストラクタ、それを継承したクラスのデストラクタもよばれたけど、③では呼ばれませんでした。 どうしてでしょうか? どうしたら、デストラクタ呼べますか?