我的B类中有3个函数。这三个函数必须访问其他类A的成员函数。
我是通过在B类构造函数中创建类A的对象并尝试在类B的函数中访问该对象来实现的。但它显示错误。
如何在这三个函数中评估相同的对象。我必须创建A类对象
B::B()
{
A a;
}
B:: function()
{
a.fun(); //fun belongs to class A
}
B:: function1()
{
a.fun1(); //fun1 belongs to class A
}
我收到错误,如何在两个函数中实现相同的访问对象a。
答案 0 :(得分:3)
您应该添加A作为B类的成员,而不是B构造函数的局部变量。 试试这个:
class B
{
public:
B();
void function1();
private:
// This is your member, and you can access it from all of B's methods.
A m_a;
};
答案 1 :(得分:1)
您需要使a
成为类B
的成员变量,如下所示:
class B
{
private:
A a;
// ...
}
这将使其可用于B
的所有成员函数。
(不需要private
- 做出private
,protected
或public
的决定取决于您是否只想在B
内使其可用{1}},在B
和B
的派生类中,或在任何地方。)