• C++ 基础部分记录


    一、
    1、什么是C++
                 c++是c语言的升级版,在c的基础上增加了很多功能。是一种高级语言。
    2、什么是面向对象,什么又是面向过程
                 c语言就是面向过程的,c++就是面向对象的
           举例:a+b
                 直接计算a+b 就是面向过程
                 面向对象就是给a+b穿上了一层衣服。不是直接计算a+b
    3、c++的灵魂,c++类
                类大家可以看成是把它看成c的结构体的升级版。类的成员不仅可以是变量,也可以是函数。
    4、如何定义一个类。
                class student
                    {
                       public:
                            char name[64];
                            char age;
                           };
    5、什么是对象?
            对象是类的实例化  :  例如     student    my;     //  my就是对象
                                                          student   *my = new student;  // 在堆里面定义       
              
    6、删除对象用的是  delete my;   //目的是释放堆里面的内存
     
     
    7、怎么访问类里面的成员:
             与c语言的结构体是一样的,普通变量通过 . 来访问,指针用的是  ->   来访问
     
    8、类函数的成员。
          因为类里面的额城建院不仅是变量,也可以是函数
          第一步:在类里面声明
          第二步:写到类的外面
     
    访问函数和变量是一样的
     
     
    9、类的访问修饰符。
         类的访问修饰符是对类的成员权限管理
     
         public :  表示函数和变量是公开的,任何人都可以访问。
         private( 私人的,私立的) :  表示函数和变量只能在自己的类里面自己访问自己,不能通过对象来访问
     
                         如果要强行访问,则需要想通过访问它所在的类,从而绕了一个弯就能访问到了
     
        protected(受保护的,保护)  : 表示函数和变量只能在自己的类里面自己访问自己,但是可以被派生                                                           类来访问的
     
     
    二、
     
    1、类函数的重载特性。
           类函数的重载特性就是在类里面定义同名的函数,但是参数不同的函数(这种情况在c语言中我们是不允许的)
          譬如:
             class student {
                                      public:
                                       student(); //构造函数和类名一样
                                      char name[64];
                                       int age;
     
                                       void test();
                                       void test(int a); //建立同名函数,但是要传参
     
                                         private:
                                                        int haha;
     
                                     };
     
           重载函数在调用时,会根据参数的类型,然后去自动去匹配。
     
     
    2、构造函数和析构函数。
     
         析构函数:假如我们定义了析构函数,当对象被删除或者生命周期结束的时候,就会触发析构函数。
         构造函数:假如我们定义了构造函数,就会触发这个构造函数。
     
          怎么定义析构函数和构造函数?
     
          构造函数和析构函数的名字必须和类的名字必须是一模一样的。
        
            构造函数是可以被重载的。相当于驱动的module_init()
            析构函数不能被重载.          相当于驱动中的module_exit();
     
    三、
    3、类的继承。
     
         类的继承允许我们在新的类里面继承父类的public 还有protected 部分,private 是不能被继承的。
         当我们觉得这个类不好的时候,可以使用类的继承,添加我们需要的功能
     
        格式:
     
          class 儿子 :: public 爸爸
             {
                public:
                 .....
                protected:
                 }
     
     
    class mystudent :public student
    {
       public:
                  int grade;
     
     
    };
     
    如果子类里面去访问父类的成员?
       也是通过  .  和 ->(指针) 来访问的。
     
     
     
    四、
     虚函数和纯虚函数
     虚函数:   有实际定义的,允许派生类对它进行覆盖式的替换,virtual 来掩饰。
     纯虚函数:没有实际定义的虚函数就是纯虚函数。
     
    举例: 
      virtual void test();  //虚函数
      virtual void testa(){}; //纯虚函数
     
    怎么定义一个虚函数?
    用virtual 来修饰,虚函数是用在类的继承上的。
     
    虚函数的优点:
         可以预留接口,实现分工合作。
      
      譬如说,一人负责写驱动的,并不负责写应用,用了虚函数之后,可以让会写应用的人来写应用 因为使用虚函数,
                   所以可以直接覆盖掉前面的函数,这样就可以实现分工合作。
  • 相关阅读:
    Linux中yum命令镜像源和出错解决方案
    Redis编译安装
    Linux下安装Redis
    zabbix3.4.2的安装及配置
    【前端】活动表单
    【笔记】archlinux缺少部分常用工具
    【笔记】BootstrapTable带参数刷新数据的坑
    【笔记】Win7连接公司内网无法打开网页
    【笔记】Archlinux下配置rsyslog写日志到mysql
    【笔记】Gave up waiting for suspend/resume device
  • 原文地址:https://www.cnblogs.com/gz-blogs/p/13756667.html
Copyright © 2020-2023  润新知