帮我改下C++程序谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/13 10:19:56
#include "stdafx.h"
#include<iostream>
using namespace std;
class Animal{
protected:

public:

char point;
Animal(){}

virtual void display(){};
~Animal(){}
};
class Mammals:virtual public Animal
{ //哺乳动物
public:

Mammals():point('m'){}
void display()
{
if(point=='m')
cout<<"it's a Mammals"<<endl;
}
~Mammals(){}
};

int main(int argc, char* argv[])
{
Mammals b;
b.display();

return 0;
}

Mammals():point('m'){}
point是基类的成员,不能直接使用派生类的构造函数的初始化列表,可以这样写
Mammals(){point = 'm';}

#include "stdafx.h"
#include<iostream>
using namespace std;
class Animal{
protected:

public:

char point;
Animal(){}
Animal(char m){ point = m;}

virtual void display(){};
~Animal(){}
};

class Mammals:virtual public Animal
{ //哺乳?物
public:

Mammals():Animal('m'){}
void display()
{
if(point=='m')
cout<<"it's a Mammals"<<endl;
}
~Mammals(){}
};

int main(int argc, char* argv[])
{
Mammals b;
b.display();

return 0;
}

已经可以了