为了区分类和结构,我们首先必须了解,在保存和定义数据的上下文中,结构和类似乎是等效的。这两个都可以定义并在其数据成员中保留一些默认值。但是,如果我们在此上下文之外考虑它们,则与结构相比,类将提供更多的灵活性以及功能。
以下是类和结构之间的重要区别。
序号 | 键 | 类 | 结构体 |
---|---|---|---|
1 | 数据类型 | 类中定义的数据作为引用存储在内存中,并具有特定的地址以便访问,因此可以将其声明为类是引用类型。 | 另一方面,在使用Structure的情况下,数据成员的值直接存储在堆栈中或内联包含类型,因此将Structures视为Value类型。 |
2 | 存储 | 如上 ,在Class的情况下,数据成员存储为引用,并且在堆内存中分配了引用类型。 | 另一方面,在结构直接值中要进行存储,以便在堆栈存储器上分配值类型。 |
3 | 构造函数 | 可以使用构造函数以及反构造函数来定义类,因为它们已经实现了其功能。 | 另一方面,Structure不能具有构造函数或反构造函数,因为其中未提供此类实现。 |
4 | 实例化 | 由于Class是在构造函数的帮助下引入的,因此Class可以使用new关键字实例化其实例。 | 另一方面,Structure可以创建没有新关键字的实例。 |
5 | 继承 | 类可以从其父类继承属性,因为它支持继承功能。 | 另一方面,Structure不支持继承。 |
6 | 保护修饰符 | 我们可以对类中定义的数据成员使用protected修饰符,因为Class支持protected修饰符。 | 另一方面,结构不支持受保护的修饰符。 |