我有一个基类 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/