C++ 如何从c+;中的不同类访问类成员变量+;
我有以下两个类头文件(A.h和B.h),每个类头文件中都有一个函数: 甲级 { 公众: 双f(双); }; B类 { 公众: 双g(双); }; 以下是它们相应的cpp文件: 包括“A.h” 包括“B.h” 包括“A.h”C++ 如何从c+;中的不同类访问类成员变量+;,c++,member-access,C++,Member Access,我有以下两个类头文件(A.h和B.h),每个类头文件中都有一个函数: 甲级 { 公众: 双f(双); }; B类 { 公众: 双g(双); }; 以下是它们相应的cpp文件: 包括“A.h” 包括“B.h” 包括“A.h” 我想在函数g(在B中)中使用函数f(从A开始)。我该怎么做 将方法声明为static static double A::f(double variable1) { // do stuff on variable 1 } 然后你可以使用例如 double B::g(doubl
我想在函数g(在B中)中使用函数f(从A开始)。我该怎么做 将方法声明为
static
static double A::f(double variable1)
{
// do stuff on variable 1
}
然后你可以使用例如
double B::g(double variable2)
{
return A::f(variable2)
}
或者你想做的任何事情。你需要一个
B类型的对象来做:
class B {
public:
A my_a;
void g() { my_a.f(); }
}
有几个选择:
使函数为静态
。如果函数不使用类的任何非静态成员,则可以这样做。然后您可以在B::g
让B
继承自A
。然后您可以从B::g
将A
的实例作为B
的成员。然后从该实例访问A::f(variable2)
将A
的实例传递到函数B::g
。通过该实例访问该函数
(1) 如果类的作用仅仅是将相关函数捆绑在一起,那么它就可以很好地工作。(尽管我更喜欢在这种情况下使用名称空间
)
(2) 如果继承结构是合乎逻辑的,则可以很好地工作。如果不是,就不要做
(3) 这是一件常见的事情。您对这个问题的表达满意吗?通过缩进问题中的代码部分,您可以使它看起来像代码。(请阅读markdown语法!)我认为静态将是一个很好的选择。谢谢。
double B::g(double variable2)
{
return A::f(variable2)
}
class B {
public:
A my_a;
void g() { my_a.f(); }
}