-4

我有以下 2 个类头文件(Ah 和 Bh),每个里面都有一个函数:

A类{公共:双f(双);};

B类{公共:双g(双);};

以下是它们对应的cpp文件:

包括“啊”

double A::f(double variable1)
{
// do stuff on variable 1
}

包括“Bh”

包括“啊”

double B::g(double variable2)
{
// do stuff on variable2 using f from A
}

我想在函数 g(在 B 中)中使用函数 f(来自 A)。我该怎么做呢?

4

3 回答 3

0

将方法声明为static,

static double A::f(double variable1)
{
// do stuff on variable 1
}

那么你可以使用例如

double B::g(double variable2)
{
    return A::f(variable2)
}

或者你想做的任何事情。

于 2016-01-29T09:49:01.187 回答
0

你需要一个类型的对象B来做到这一点:

class B {
public:
    A my_a;
    void g() { my_a.f(); }
}
于 2016-01-29T09:49:14.573 回答
0

几个选项:

  1. 制作函数static。如果函数不使用类的任何非静态成员,您可以这样做。然后你可以A::f(variable2)在里面打电话B::g

  2. 继承自. B _ A然后你可以A::f(variable2)B::g

  3. 有一个实例作为A成员B然后您A::f(variable2)从该实例访问。

  4. 将 的实例传递A给函数B::g。通过该实例访问该函数。

(1) 如果类只是作为一种将相关功能捆绑在一起的方式服务,则效果很好。(虽然我更喜欢在namespace这种情况下使用 a 。)

(2) 如果继承结构是合乎逻辑的,则效果很好。如果不是,请不要这样做。

(3) 是常做的事。

于 2016-01-29T09:50:38.590 回答