2016-11-05 89 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()); –