2012-10-29 148 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; 
};