gpt4 book ai didi

c++ - 访问派生类成员的基类方法

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:14 25 4
gpt4 key购买 nike

我有以下场景:

class num {
public:
void print(ostream* o); // Prints the n variable
};

class int_num : public num{
public:
int n; // Initialized by this class's constructor
};

class float_num : public num{
public:
float n; // Initialized by this class's constructor
};

class double_num : public num{
public:
double n; // Initialized by this class's constructor
};

我如何实现这样的方案

最佳答案

给它一个虚方法,在派生类型中实现:

class num {
public:
void print(ostream& o) const
{ // Prints the n variable
doPrint(o);
}
private:
virtual void doPrint(ostream& os) const = 0;
};

class double_num : public num{
public:
double n; // Initialized by this class's constructor
private:
void doPrint(ostream& os) const
{
os << n;
}
};

关于c++ - 访问派生类成员的基类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com