我正在尝试使用敏捷库扩展现有应用程序。该库迫使我创建一个具体的接口类,InterfaceToA
以连接到我的应用程序。然而,在我的应用程序中,实例化这个对象的最自然的地方(没有主要的重构)是在另一个类的ClassA
实现中。我真的需要接口类来访问所有ClassA
数据和成员函数(继承自)。所以像:
// 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++ 中是否可行,我一直在尝试使用继承和嵌套类来考虑这一点,但我完全可以弄清楚如何进行。