==== 練習問題 ====
#include
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型のデストラクタ、それを継承したクラスのデストラクタもよばれたけど、③では呼ばれませんでした。
どうしてでしょうか?
どうしたら、デストラクタ呼べますか?