2011-10-06 41 views
1
#include <stdio.h> 

class MyClass { 

    void Foo(const int par); }; 


void MyClass::Foo(const int par) { } 

main() { MyClass A; A.Foo(1); } 

任何人都可以幫助我嗎?我的代碼有什麼問題?這是我用gcc編譯時得到的錯誤:C++。成員函數不能被調用。錯誤:「foo是私人的」

error: ‘void MyClass::Foo(int)’ is private 
+0

可能的重複[什麼是訪問說明符?我應該繼承與私人,受保護或公共?](http://stackoverflow.com/questions/5447498/what-are-access-specifiers-should-i-inherit-with-private-protected-or-public) –

回答

2

類成員和類成員函數默認都是私有的,這意味着它們只能由同一個類和朋友的方法accesed。

class MyClass { 

    // members declared here will be private 

public: 

    // members declared here will be public 
    void Foo(const int par); 

private: 

    // private 

}; 
0

默認情況下方法是private。使用

public: void Foo(const int par);

+1

方法如果它們屬於一個'class',則默認情況下是私有的。對於一個'struct'(在C++中也可以有方法),默認的訪問級別是'public'。 –

相關問題