结构体和类的区别(面试常考)

结构体(struct)和类(class)是两种用于组织数据和功能的方式,它们之间有几个重要区别:

1. 成员的默认访问级别

          在结构体中,成员默认是公开的(public),而在类中,默认是私有的(private)。这意味着在结构体中,所有成员都可以直接访问,而在类中,只有类的方法才能访问私有成员。

2. 继承和多态

         类支持继承和多态,这意味着一个类可以从另一个类继承属性和方法,并且可以使用多态性来实现不同形式的方法。而结构体不支持继承和多态。

3. 内存布局:

         在一些编程语言中,结构体的实例通常是在栈上分配的,而类的实例通常是在堆上分配的。这意味着当你创建一个结构体的实例时,它会在函数调用栈上分配内存,并且当函数返回时,内存就会被释放。而类的实例则可以在堆上动态分配,并且可以手动释放内存。

4. 使用场景:

         通常来说,结构体更适合用于轻量级的数据传输和封装,而类则更适合用于复杂的对象建模和面向对象的编程。例如,当你需要表示一个点的坐标时,可以使用结构体,而当你需要表示一个人的信息时,可以使用类。

举个例子,我们来看一个简单的结构体和类的示例:

// 结构体示例

struct Point {

    var x: Int

    var y: Int

}

// 类示例

class Person {

    var name: String

    var age: Int

 

    init(name: String, age: Int) {

        self.name = name

        self.age = age

    }

}

        在上面的示例中,我定义的“Point” 是一个结构体,用于表示二维平面上的一个点,它有两个整型成员 “x” 和 “y”。而 “Person”是一个类,用于表示一个人,它有两个成员 “name”和“age”。

  • 30
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值