这是一个特定的问题,我已经有一段时间找不到解决方案了。我有这个代码:
#include <iostream>
using namespace std;
class Mammal
{
public:
Mammal() {cout << "Mammal Constructor\n";}
virtual ~Mammal() {cout << "Mammal Destructor\n";}
virtual void Run() {cout << "Mammal Ran One Space\n";}
protected:
int mammalDistance;
};
class Horse : public Mammal
{
public:
Horse() {cout << "Horse Constructor\n";}
~Horse() {cout << "Horse Destructor\n";}
void Run() {cout << "Horse Ran One Space\n";}
void Run(int distance) {horseDistance = distance;
cout << "Horse Ran " << horseDistance << " Spaces\n";}
protected:
int horseDistance;
};
int main()
{
Mammal *pHorse = new Horse;
pHorse->Run(5);
delete pHorse;
return 0;
}
现在,如果我使用 void Run(int horseDistance) 并将其向上移动到 Mammal 中,则此代码有效,但我想知道是否有办法将其保留在马中而不保持隐藏。
编辑:我的意思是,如果我采用接受输入的函数并将其向上移动到 Mammal 中,而不是像现在这样将它放在 Horse 类中,它会按预期编译和工作。是的,如果它可以在传入 horseDistance 时改变它的值,我希望它。编辑:OI 明白你的意思。我编辑了代码。