c ++中命名空间中的函数重载

时间:2016-11-05 20:26:33

标签: c++ class inheritance namespaces overloading

我需要帮助来实现以下任务。 所以我希望命名空间具有从一些库类函数继承的相同命名类RHS,在RHS类中具有相同的命名函数RHSvalue,在每个命名空间中具有不同的实现。类Function在其实现中也没有任何名为RHSvalue的函数。

namespace S50{                  // Mother namesapce in which i want to implement all tasks
 class Coeff: public Function { // Function class from some library
public:
virtual double value();
virtual void value_list();
};
}

namespace Charge{
class RHS: public Funtion {
virtual double RHSvalue (); // Function class does not have any function named RHSvalue()
};
}

namespace S16{
class RHS: public Function {
virtual double RHSvalue(); // same named function in other namespace with other implementation
};
}

1 个答案:

答案 0 :(得分:0)

似乎你得到了你想要的......我的意思是你所描述的。

一些意见:

1)您不需要在Function类中定义RHSvalue,但如果不是,则不能使用指向Function的指针调用RHSvalue函数,例如。

Function* function = new Charge::RHS();
function->RHSvalue(); // ERROR

2)Coeff课程是什么?您没有在说明中提到它

3)如果您需要不同的实现,那么只需输入以下内容:

namespace Charge{
    class RHS: public Funtion {
    virtual double RHSvalue () { std::cout << "From Charge"<< std::endl; }
    };
}