Use of class and struct
Possible Duplicates:
When should you use a class vs a struct in C++?
What are the differences between struct and class in C++
1 2 3 4 5 6 7 | struct X{ }; class X{ }; |
在C++中,同样的任务可以由EDCOX1,0,EDCOX1,1,E.我的问题是我应该在哪里使用
C++中结构和类的区别是:
- 默认情况下,类的成员是私有的,而结构的成员是公共的。
- 同样,类之间的继承在默认情况下也是私有的,结构之间的继承在默认情况下是公共的。
但基本上,无论您在哪里使用一个结构,您都可以使用一个类,反之亦然,所以使用什么取决于您自己。通常,当您有方法时,使用类更为常见,而当您只有数据时,结构更为常用。
我想说,如果您希望所有数据成员都是公共的,并且没有方法,那么就使用一个结构。否则使用类。但这只是个人喜好。
没关系,两者都是等价的。唯一的区别是,
首先是"为什么会这样?"
我应该指出为什么在C++中支持结构。
记住C++的观点是双重的,首先是面向对象的语言,而且是一种"更强的C",具有更强的类型检查和许多其他好处。但是,为了保持向后兼容(并且确实是为了提高向后兼容性),结构被保留了下来。
还记得原来的C++是cFAX,它本质上是C的预编译程序。在C++中你可以做的任何事情都可以在C中完成,这样做是很痛苦的,没有一个机制来执行规则是没有保证的。
考虑到这一点,让我们再来看看区别。
如果希望默认情况下成员是公共的(格式错误,从不假定为默认值),请使用struct。但是,如果您真的希望某个行为类似于C结构的东西,也可以使用结构。它通常只有很少的方法(如果有的话),而且通常没有操作符。这不是语言的要求,它被许多人认为是好的形式,如果不是大多数的话,C++程序员。如果您真的想要一个类的所有功能,请使用一个类。
除了访问之外,结构和类是相同的(在声明和派生对象中)。
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class A { int i; }; struct B { int j; }; class C : A { // i is private to A. }; struct D : B { // j is public }; |
你用这些话回答了你自己的问题:
in C++, Same task can be done by class as well as struct.
所以用任何能让你快乐的东西。
当我不想显式地编写
结构将那里的成员作为默认值获取公共成员,类将那里的成员作为默认值获取私有成员。
个人我使用结构非常小的容器。
我通常使用带有getter和setter的私有成员的类