可能重复:
When should you use a class vs a struct in C++?
What are the differences between struct and class in C++使用class和struct的
struct X{
};
class X{
};
在C++
,同样的任务可通过class
以及struct
来完成。我的问题是我应该在哪里使用class
和struct
?
可能重复:
When should you use a class vs a struct in C++?
What are the differences between struct and class in C++使用class和struct的
struct X{
};
class X{
};
在C++
,同样的任务可通过class
以及struct
来完成。我的问题是我应该在哪里使用class
和struct
?
没关系,两者都是等价的。唯一的区别是struct
默认为公共成员可见性和公共继承,class
默认为私有。
结构到达那里成员公开作为默认的类到达那里成员私人作为默认。
Personnaly我使用结构很小的容器。
我用一般类与干将私有成员&制定者
你已经回答了你自己的问题,在这些话:
在C++,同样的任务可通过类来完成,以及结构。
所以使用任何让你快乐的东西。
我通常使用struct
,当我不想明确地写public
,特别是当我写模板元编程。
C++中的结构和类之间的差异是:
但基本上任何地方你使用一个结构,你可以使用一个类,反之亦然,所以它真的取决于你使用什么。按惯例,当你有方法时,使用一个类更为常见,而当你只有数据时,结构更常用。
我会说,如果你想要所有的数据成员是公开的,而你没有方法,那么使用一个结构。否则使用一个类。但这只是个人喜好。
首先是“为什么会这样?”
我应该指出为什么C++支持结构体。记住C++的重点是双重的,首先是作为面向对象的语言,但也作为“更好的C”,具有更强的类型检查和许多其他好处。但是,为了保持向后兼容(并且实际上改善这种向后兼容性),结构被留下了。
还记得最初的C++是cfront,它本质上是一个C语言的预编译器。任何你可以在原始C++中做的事情,你可以在C中做,只是很痛苦,没有保证没有执行规则的机制。
考虑到这一点,让我们再次看看差异。
当你希望成员是公开的时使用struct BY DEFAULT(坏形式,永远不要默认)。但是,当你真的想要像C结构一样的东西时也使用一个结构。它通常只有很少的方法,并且通常没有操作员。这不是语言的要求,它只是许多(如果不是大多数)C++程序员的良好形式。如果你真的想要一个类的所有功能,请使用一个类。
结构和类除了访问外(在声明中以及在派生对象中)都是相同的。
实施例:
class A
{
int i;
};
struct B
{
int j;
};
class C : A
{
// i is private to A.
};
struct D : B
{
// j is public
};
http://www.parashift.com/c++-faq-lite/classes-and-objects.html#faq-7.9 – Joe