面向对象(一)

  一、面向对象含义

  之前一直都说面向对象和面向过程,具体是什么含义,并不清楚,自从学习了C++课程后,才知道什么是面向对象。接下来,用图片说明实体、ADT、类和对象四者间的联系。

  总结一下,整个过程就是将现实生活中存在的实体抽象成抽象数据类型,然后转换成计算机语言中的类,再通过实例化过程实例化一个对象。当然类可以实例化多个对象,而且多个对象的属性是私有的,行为确是公有的。就像是我们人来说,每个人都有各自的姓名、性别,但是所有的人都可以吃饭和睡觉。

二、 面向对象思想的三大特性:封装、继承、多态

1、封装—通过访问限定符

      public:公有的,在函数任意位置都能访问

      protected:受保护的,一般用于继承和派生中,作用是:子类可以访问父类的保护成员

      private:私有的,只有在类中才能被访问

2、 多态分为静多态和动多态

     静多态:主要用于函数重载和模板中

     动多态:主要用于虚函数

  继承和多态具体后面再说

3、下面看一个类:

(1)class Student

{

         char *name;

         int age;

};如果在类中没有说明是public还是private,则默认是private

(2)在说到类的时候,想到了结构体,那么在C++中类和结构体有什么区别呢?

  在C++中,结构体默认里面的是全部可见的,相当于公有的,但是类中默认的是私有的,这就是唯一的区别。

(3)C++中的类和C语言中的结构体的区别

  如果有这样一个结构体:

struct  Node

{

     int data;

     struct Node *next;

}

  在C语言中,要想定义一个节点,需要写成struct Node a;但是在C++中,写成Node a,就可以。

  现在有一个空类(或者空结构体),对其求sizeof,在C语言、C++、Linux中结果会是什么呢?

     C语言中:编译不通过。

     C++中:结果为1,原因是:虽然创建的是空类,但是当我们要声明实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例,VS中默认空类占有一个字节大小的空间。

     Linux:结果为0,不占空间。









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值