类和对象提高

程序设计与算法(三)C++面向对象程序设计-郭炜 第三周

  • C++程序翻译成C程序后再编译
    • 类中的成员函数转换为了全局函数,此函数多一个参数A* this(A为一个类名)
    • this 指针:指向该函数作用的对象
  • 静态成员static
    • 静态成员变量
      • 被所有对象共享
      • 必须在定义类的文件中对静态成员变量进行声明,最好要初始化
      • 既然是全局的,就可以用来统计对象的数目,在构造函数中增加某些量,析构函数中减少
    • 静态成员函数
      • 不作用于具体的对象
      • 其中不能访问非静态成员变量和调用非静态成员函数
    • 在类外时,公有的静态成员不需要对象就可以访问,如以类名::成员名的方式
    • 本质上是全局变量/函数,不依赖于对象而存在
  • 封闭类
    • 有成员对象的类
    • 之中的对象须按其构造函数的方式初始化
    • 按说明次序调用成员对象的构造函数,再调用封闭类的构造函数
    • 消亡时,先执行封闭类的析构函数,再执行成员对象的析构函数
    • 封闭类中用复制构造函数初始化
  • 关于常量const
    • 常量对象
      • 在前面加关键字
      • 其值不能被改变
      • 不能调用非常量成员函数
    • 常量成员函数
      • 之中不能修改成员变量的值
      • 不能调用同类的非常量成员函数(静态成员函数除外)
      • 在成员函数说明后加const关键字
      • 两个成员函数的名字和参数都一样,一个是const,一个不是,算作重载
  • 对象的常引用
    • const A & sample
  • 友元函数
    • 一个类的友元函数可以访问该类的私有成员
    • 声明函数时在其前加friend关键字
    • 可以把一个类的成员函数说明为另一个类的友元
  • 友元类
    • 若A是B的友元类,则A的成员函数可以访问B的私有成员
    • 两个类关系密切时,声明为友元比较方便,就像C的struct,不分辨私有公有了
    • 友元类之间不能传递和继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值