2010-04-22 69 views
0

我有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 
} 

我得到的錯誤,我怎麼能實現在那裏我可以在這兩個函數訪問對象相同。

回答

1

你需要讓aB類的成員變量是這樣的:

class B 
{ 
private: 
    A a; 

// ... 
} 

這將使其可向B的所有成員函數。

(使它private是沒有必要的 - 決定把它privateprotectedpublic取決於您是否想使它只在B可用,內BB的派生類,或隨處可見。)

3

您應該添加爲您的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; 
};