2016-11-05 88 views
0

我需要帮助来实现下面的任务。 所以我想要命名空间的命名空间是从某些库类Function继承的相同的命名类RHS,在RHS类内部具有相同的命名函数RHSvalue,每个命名空间都有不同的实现。此外,类Function在其实现中没有任何名为RHSvalue的函数。函数在C++中的命名空间中重载

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 
}; 
} 

回答

0

看来你已经得到了你想要的......我的意思是你所描述的。

一些评论:

1)你不需要RHSvalue在功能类中定义的,但如果它不是,那么你可以不叫RHSvalue功能可按使用函数指针,例如。

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

2)什么是Coeff类?

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

那正是我想要的东西:如果你需要不同的实现则只是把这样的事情你还没有在描述

3)提到。我想使指针动态指向名称空间对象的RHS类之一。例如 –

+0

。 std_cxx11 :: shared_ptr RhsFunc = std_cxx11 :: make_shared (Step16 :: RHS()); –