gpt4 book ai didi

c++ - 基类和派生类的友元函数

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:20 26 4
gpt4 key购买 nike

我有一个基类 Fraction 和一个派生类 iFraction。 Fraction 代表假分数,iFraction 代表带分数。

class Fraction {...};
class iFraction : public Fraction {...};

现在,我想为这两个类声明一个友元函数,即convertF。函数convertF可以将假分数(Fraction)转换为带分数(iFraction)。我这样做有多冷?实际上,我想这样声明函数:

friend iFraction convertF (Fraction &Fra);

但是,它不能在基类 Fraction 中声明。为什么?

最佳答案

为此您不需要友元函数。有两种方法可以做到这一点:使用 dynamic_cast 或编写一个转换构造函数,该构造函数采用 Fraction 对象并将其转换为 iFraction 对象。我不太确定第二种选择是否是一个好的选择,但值得一试。

关于c++ - 基类和派生类的友元函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227802/

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