- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在编写一个程序,该程序对各种类型的数字进行建模并在 Set 对象(已编写和测试)中以多态方式管理它们。我的继承关系是这样的:Multinumber(所有虚函数,虚类)由 Pairs, Complex, Rational 继承这些子类都具有大部分相同的功能,但参数不同。
我遇到的问题是这样的函数:
Multinumber& Complex::operator=(const Multinumber &rhs)
{
imag=rhs.imag;
real=rhs.real;
return *this;
}
因为我以多态方式处理这个问题,所以我的返回类型和参数都必须是 Multinumber 类型,以便覆盖基类的参数。但是,我很难编译它。我收到了一大堆错误:
error: 'const class Multinumber' has no member named 'imag'
这是真的。 Multinumber 没有 imag 属性或函数。但是我怎样才能让编译器意识到 Multinumber& rhs 总是复杂的,或者这样对待它呢?感谢您的帮助。
这是我的父类(super class)的样子:
class Multinumber
{
public:
virtual Multinumber& operator+(Multinumber&);
virtual Multinumber& operator=(Multinumber&);
virtual bool operator==(Multinumber&);
virtual string object2string();
virtual Multinumber& makeobject(double, double)=0;
};
最佳答案
我认为你必须施法。试试这个:
Multinumber& Complex::operator=(const Multinumber &rhs){
const Complex & _rhs = dynamic_cast<const Complex &>(rhs);
imag=_rhs.imag;
real=_rhs.real;
return *this;
}
关于c++ - 如何从多态层次结构中的基类引用调用子类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280675/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!