我有以下2个类头文件(A.h和B.h),每个文件都有一个函数:
A班 { 上市: 双f(双); };
B级 { 上市: 双g(双); };
以下是相应的cpp文件:
double A::f(double variable1)
{
// do stuff on variable 1
}
double B::g(double variable2)
{
// do stuff on variable2 using f from A
}
我想在函数g(在B中)使用函数f(来自A)。我该怎么做呢?
答案 0 :(得分:0)
将方法声明为static
,
static double A::f(double variable1)
{
// do stuff on variable 1
}
然后你可以使用例如
double B::g(double variable2)
{
return A::f(variable2)
}
或者你想做什么。
答案 1 :(得分:0)
您需要B
类型的对象来执行此操作:
class B {
public:
A my_a;
void g() { my_a.f(); }
}
答案 2 :(得分:0)
一些选择:
制作函数static
。如果函数不使用该类的任何非静态成员,则可以执行此操作。然后,您可以在A::f(variable2)
B::g
让B
从A
继承。然后,您可以从A::f(variable2)
B::g
将A
的实例作为B
的成员。然后,您可以从该实例访问A::f(variable2)
。
将A
的实例传递给函数B::g
。通过该实例访问该功能。
(1)如果这些类只是用作将相关函数捆绑在一起的方式,那么效果很好。 (虽然我更喜欢在这种情况下使用namespace
。)
(2)如果继承结构是合乎逻辑的,那么效果很好。如果不是,就不要这样做。
(3)是常见的事情。