【问题标题】:C++ derivative class with virtual function [closed]具有虚函数的 C++ 派生类 [关闭]
【发布时间】:2018-04-19 14:30:24
【问题描述】:

我的某项任务有问题。我需要编写一个派生类,我需要确定,向量 FVect 只包含字符 .

class Something {
private:
   char FVect[3];

protected:
   virtual void setValue(int _idx, char _val) { FVect[_idx] = _val; }

public:
   Something() {};
};

由于 FVect 是私有的,所以我不确切知道如何在派生类中编写方法(无需对 Something 类进行更改)。

感谢您的帮助。

【问题讨论】:

  • 在派生类中使用setValue
  • 您是在问如何从class Something 派生另一个类,还是在问如何确保FVect 只包含从'a' 到'z' 的字符?你的问题太不清楚,太宽泛。请详细说明和edit
  • 该术语是派生类,而不是派生类。
  • 感谢您的回答。我的任务听起来完全像这样:“写一个派生到 'Something' 的类的定义,我们确信,向量 FVect 的每个元素只包含 字符”

标签: c++ derived-class virtual-functions


【解决方案1】:

使用您当前的设置,您唯一能做的就是在派生自Something 的类中实现setValue(),如果_val 超出有效值,则引发异常,否则调用基类方法有效:

class Derived : public Something {
    ...
    void setValue(int _idx, char _val) {
        if ((_val < 'a') || (_val > 'z')) throw std::invalid_argument( "invalid character" );
        Something::setValue(_idx, _val);
    }
    ...
};

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2012-11-02
    • 2013-08-25
    • 2018-07-11
    • 1970-01-01
    • 2011-09-08
    • 2011-11-16
    • 2015-04-16
    • 2011-06-21
    相关资源
    最近更新 更多