在c ++中,如果你创建一个这样的结构或类
struct foo {
}
你必须使用struct或class限定符来创建另一个,就像在c中一样,如果没有,为什么呢?什么时候适合在C ++中使用它
示例
struct foo a;
谢谢: - )
答案 0 :(得分:3)
不,在C ++中实例化时不需要struct
关键字。顺便说一下,struct定义应以;
答案 1 :(得分:3)
struct
不是必需的。在C ++中,struct
和class
之间的唯一区别在于struct
,默认情况下成员为public
,而class
中的成员为private
默认情况下重新{{1}}。
答案 2 :(得分:2)
你可以,但你不必。最好不要这样,如果你不打算将你的代码与纯C混合,那么它就是正确的C ++风格。原因是C ++的设计者认为C的标签概念不必要地复杂化。我倾向于同意。
答案 3 :(得分:1)
在C中,您可以使用typedef来避免它。在C ++中,类型是自动创建的,因此无需显式声明它。
C
语法使其相似:
typedef struct {
....
} foo;
然后您可以通过说foo x;