类和结构之间的差异

时间:2015-03-16 16:10:35

标签: c++ class structure theory

我读到类和结构之间的主要区别在于类是引用类型结构是值类型。 任何人都可以解释一下 值类型和引用类型意味着什么 ......?

3 个答案:

答案 0 :(得分:9)

你必须考虑不同的语言。在C ++中,无论是使用class还是struct关键字引入类类型,它们在语义上都是相同的。它们是对象类型(人们可能会松散地调用"值类型"),就像是具有值表示的对象一样。

唯一的区别是,如果您使用struct,则默认情况下基类和成员是公开的,如果您使用class,则默认为私有。

引用类型用&&&表示,可以引用任何对象或函数类型,而不仅仅是类。

答案 1 :(得分:6)

class es和struct之间的区别在于默认情况下成员/基数为privateclass但{{{ 1}}到public

现在,值和引用是C ++中struct / class的完全正交概念,基本上是struct / class实例处理与实例

答案 2 :(得分:1)

在c ++中,struct和class之间的唯一区别是默认的成员访问和默认继承:

struct A : BaseClassOrStruct { // public inheritance
   int member;                 // public member
}

class A : BaseClassOrStruct { // private inheritance
   int member;                // private member
}

但是,我通常会对它们进行区分:我使用一个结构来指示我的对象实际上只是一个数据成员的集合(通常具有公共访问权限)而没有方法(除了setter和getter)。