c++编译器错误中的简单类继承

simple class inheritance in c++ compiler errors

本文关键字:简单 继承 编译器 错误 c++      更新时间:2023-10-16

我希望我的Dog类能够正确地继承Pet中的函数,以便main中的代码能够正确地执行。编译器警告说,私有方法是从基类Pet调用的。

main:

Dog * d = new Dog( "Muffin" );
cout << "The " << d->getVariety( ) << " " << d->getName( ) << " speaks by saying " << d->speak( ) << endl;

类:

class Pet
{
public:
Pet( );
Pet( std::string name, std::string variety, std::string says )
{
    myName=name;
    myVariety=variety;
    howIspeak=says;
}
std::string getName( ) const
{
    return myName;
};
public:
std::string getVariety( ) const
{
    return myVariety;
};
std::string speak() const
{
    return howIspeak;
};
protected:
std::string myName;
std::string myVariety;
std::string howIspeak;
};
class Dog: Pet
{
public:
Dog( );
Dog( std::string name );
virtual void speak( );
};

C++默认为私有继承。因此使用

class Dog: public Pet

默认情况下类具有私有继承

 class Dog: public Pet