2012-10-29 335 views
52

一般我們可以定義爲一個C++結構變量,如在功能的C++結構

struct foo { 
    int bar; 
}; 

我們也可以定義爲一個結構的功能?我們將如何使用這些功能?

+3

是的。和你在C++中做類一樣 – DumbCoder

回答

86

是的,structclass相同,但默認訪問級別(成員方式和繼承方式)除外。 (當與模板一起使用時,額外含義爲class

一個類所支持的每個功能都由一個結構體支持。你會像使用它們的方法一樣使用方法。

struct foo { 
    int bar; 
    foo() : bar(3) {} //look, a constructor 
    int getBar() 
    { 
    return bar; 
    } 
}; 

foo f; 
int y = f.getBar(); // y is 3 
21

結構體可以像類一樣具有函數。唯一的區別是,他們默認爲公用:

struct A { 
    void f() {} 
}; 

此外,結構也可以有構造函數和析構函數。

struct A { 
    A() : x(5) {} 
    ~A() {} 

    private: int x; 
};