0
我試圖擴展使用敏捷庫的現有應用程序。該庫迫使我創建一個具體的接口類,InterfaceToA
來連接我的應用程序。但是,在我的應用程序中,實例化此對象的最自然的地方(沒有主要的重構)在另一個類的內部,例如ClassA
,實現。我真的需要接口類來訪問所有的數據和成員函數(繼承自)。因此,像:C++繼承和實例化依賴類
// Class declarations
class ClassA {
public:
double thing1;
double thing2;
f(double arg1, double arg2);
ff()
};
class InterfaceToA : public ClassA {
public:
g(double arg1, double arg2);
};
// Class implementations
double ClassA::f(double arg1, double arg2){
InterfaceToA interface;
return interface.g(arg1,arg2);
}
double ClassA::ff(){
return 1;
}
double InterfaceToA::g(double arg1, double arg2){
return (arg1 + thing1) - (arg2 + thing2) + ff();
}
//Main function
int main(){
ClassA myClassA;
myClassA.thing1 = 1;
myClassA.thing2 = 3;
double output;
output = myClassA.f(5,1);
std::cout << str(output) << std::endl;
return 0;
}
其中在這種情況下,預計output
將3
,(5+1) - (1+3) + 1 = 3
。這是可能的C++中,我一直試圖考慮使用繼承和嵌套類,但我可以很清楚如何繼續。
而問題是?我完全不明白你有什麼問題,也許http://ideone.com/ZXils? – Arpegius 2012-07-17 22:16:18
目前尚不清楚你的問題是什麼。通常像'InterfaceA'這樣的接口就是'ClassA'實現的。或者,接口可以包含'ClassA'的一個實例作爲成員,然後在類似'InterfaceToA :: g'的方法中使用該實例來計算結果。 – 2012-07-17 22:22:41
我的問題是:我需要做什麼,並提出超過有效/合法? – johntfoster 2012-07-18 00:23:22