帮我改下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;
}
#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;
}
已经可以了