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 来修饰,虚函数是用在类的继承上的。
 
虚函数的优点:
     可以预留接口,实现分工合作。
  
  譬如说,一人负责写驱动的,并不负责写应用,用了虚函数之后,可以让会写应用的人来写应用 因为使用虚函数,
               所以可以直接覆盖掉前面的函数,这样就可以实现分工合作。
原文地址:https://www.cnblogs.com/gz-blogs/p/13756667.html