高气压低温度高山:C++中的一个问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 07:21:04
#include<iostream>

class Mammal
{
public:
Mammal():itsAge(1) {std::cout<<"Mammal consturctor...\n";};
~Mammal(){std::cout<<"Mammal destructor\n";};
void Move()const {std::cout<<"Mammal move one step\n";};
virtual void Speak() const {std::cout<<"Mammal speak\n";};
protected:
int itsAge;
};
class Dog:Mammal
{
public:
Dog(){std::cout<<"Dog constructor\n";};
~Dog(){std::cout<<"Dog destructor\n";};
void Speak() const {std::cout<<"woof\n";};
void Move()const {std::cout<<"move 5 steps\n";};
};
int main()
{
Mammal *pDog= new Dog;
pDog->Move();
pDog->Speak();
return 0;
}
这是我在书上抄的一个例子,书上的可以运行,我的连编译都不能通过,编译时的问题是:"error C2243: 'type cast' : conversion from 'class Dog *' to 'class Mammal *' exists, but is inaccessible
执行 cl.exe 时出错.这是在VC中进行的,请高手指点这是什么问题,如何搞定