我读到类和结构之间的主要区别在于类是引用类型而结构是值类型。 任何人都可以解释一下 值类型和引用类型意味着什么 ......?
答案 0 :(得分:9)
你必须考虑不同的语言。在C ++中,无论是使用class
还是struct
关键字引入类类型,它们在语义上都是相同的。它们是对象类型(人们可能会松散地调用"值类型"),就像是具有值表示的对象一样。
唯一的区别是,如果您使用struct
,则默认情况下基类和成员是公开的,如果您使用class
,则默认为私有。
引用类型用&
或&&
表示,可以引用任何对象或函数类型,而不仅仅是类。
答案 1 :(得分:6)
class
es和struct
之间仅的区别在于默认情况下成员/基数为private
到class
但{{{ 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)。