c++学习笔记(四)

打印 上一主题 下一主题

主题 867|帖子 867|积分 2601

目录

类 & 对象

c++面向对象的三大特征为:封装、继续、多态
封装

封装的意义:

  • 将属性和行为作为一个整体,体现生活中的事物(数据成员和方法)
  • 将属性和行为加以权限控制(访问修饰符)
类中的属性和行为我们一般称为成员,属性为成员属性,行为是成员方法

这里以盒子为例,定义一个类,并声明两个对象
  1. class Box
  2. {
  3.     //访问权限
  4.     //公共权限
  5.     public:
  6.     //数据成员
  7.             double lenth;        //长
  8.             double breadth; //宽
  9.             double height;  //高
  10.     //方法
  11.     //求盒子体积
  12.             double cal_Volume()
  13.         {
  14.             return lenth * breadth * height;
  15.         }
  16. };
  17. int main()
  18. {
  19.     Box box1;        // 声明 box1,类型为 Box
  20.     Box box2;        // 声明 box2,类型为 Box
  21.     //对象box1和box2都有他们各自的成员
  22. }
复制代码
访问权限

类在计划时,可以把属性和行为放在差别的权限下来加以控制
访问权限有三种:

  • public                       公共权限
    其成员类内可以访问,类外可以访问
  • protected                  保护权限
    其成员类内可以访问,类外不可以访问,但在子类(派生类)中可以访问
  • private(默认)        私有权限
    其成员类内可以访问,类外不可以访问,不可查看
  1. class Person
  2. {
  3.     public:
  4.             String name;
  5.    
  6.     protected:
  7.             int age;
  8.    
  9.     int id_card;//默认为private
  10.    
  11.     public:
  12.             func()
  13.         {
  14.             name = "alen";
  15.             age = 26;
  16.             id_card = 114514;
  17.         }
  18. };
  19. int main()
  20. {
  21.     Person p;
  22.     p.name = "walker";
  23.     p.age = 23;//报错,类外不能访问
  24.     p.id_card = 1919810;//报错,类外不能访问
  25. }
复制代码
struct和class区别
两者的唯一区别在于默认的访问权限

  • struct默认权限为公共
  • class默认权限为私有
    1. class C1
    2. {
    3.     int a;  //默认是私有权限 private
    4. };
    5. struct C2
    6. {
    7.     int a;  //默认是公共权限 public
    8. };
    复制代码
    成员属性设置为私有
    优点:

    • 将所有成员属性设置为私有,可以自己控制读写权限
    • 对于写权限,我们可以检测数据的有效性

[code]class Person{    public:            //设置名字            void setName(string name)        {            m_Name = name;        }                        //设置偶像            void setIdol(string idol)        {            m_Idol = idol;        }                //设置年事            void setAge(int age)        {            if (age < 0 || age > 150)            {                cout

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表