对象访问在VC
问题描述:
我有3个功能中的我的类B.这三个功能具有访问其他类A的成员函数对象访问在VC
我通过在B类构造函数创建类A的对象这样做并试图访问类B.但其示值误差的函数对象。
我如何评价这三个功能相同的对象。在那里我有创建类的对象的
B::B()
{
A a;
}
B:: function()
{
a.fun(); //fun belongs to class A
}
B:: function1()
{
a.fun1(); //fun1 belongs to class A
}
我得到的错误,我怎么能实现在那里我可以在这两个函数访问对象相同。
答
你需要让a
B
类的成员变量是这样的:
class B
{
private:
A a;
// ...
}
这将使其可向B
的所有成员函数。
(使它private
是没有必要的 - 决定把它private
,protected
或public
取决于您是否想使它只在B
可用,内B
和B
的派生类,或随处可见。)
答
您应该添加为您的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;
};