zoukankan      html  css  js  c++  java
  • c++ 知识点小结

    1、类

        类是c代码中必不可少的一部分。大型项目中,cpp文件都有对应的头文件。在头文件中声明及部分定义类,方便类之间的继承、调用等。

        声明类的时候,需要注意的有,public,private,成员函数声明(需要函数类型,参数,后面加分号,不需要实现的大括号),inline关键字修饰的函数(类在调用该函数的时候,是嵌入,在类内没有声明为inline,在定义的时候添加了Inline,则也是嵌入使用)。

        在定义或使用类的成员函数的时候,需要添加::,如A::write()。

    2、继承(多态)

        继承是为了增加代码的复用,同时可以增添新的功能。

        形式如:

    class a:public A
    
    {}
    

      条件:

          1、包含(include)A声明所在的头文件

          调用:

          1、当父类被继承,子类重新声明定义函数名相同,参数类型相同的成员函数时,当通过父类调用该函数名的函数,实际调用的是哪一个呢?

                 根据有无虚函数(virtual 修饰)来判断,具体参考:   https://blog.csdn.net/u012273328/article/details/51173111      

    3、重载

          重载是在相同作用域内,可以声明几个函数名相同,但是参数不同的函数,编译器通过将参数比较,选出最合适的函数。

    4、修饰符(const,friend,inline)

      const:

                  类:const 修饰的数据成员,不可修改,初始化位置只能在参数列表里。

                        const 修饰的成员函数,在函数参数之前时,只能访问同被修饰的类函数。

                        const 修饰类对象,是从对象的层面,不修改数据 只能调用const成员函数  (const 修饰函数,是从函数的层面,不修改数据)

                       参考博客:https://blog.csdn.net/fengyunzhenyu/article/details/79695516

         friend:

                友元分为友元函数和友元类,是为了方便访问。

                友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend;

                友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类,即在另一个类中friend该类。

         inline: 

                被修饰的函数本身短小,没有for,while等循环语句,且被频繁调用。编译器选择决定函数会不会被内联(替换,而不是调用地址接口)

    5、指针

         指针是有类型、有地址的变量,地址里存的是要指向的地址。

            1、类 数据成员 函数成员
                成员类型 类名::*指针名 = &类名::成员名
                函数返回类型 (类名::*函数指针名)(参数列表) = &类名::成员函数名
            2、对象
                 .* ->*
                 对象.*数据成员指针
                 对象指针->*数据成员指针     

         当需要在函数里改变多个参数,并用于后续使用时,可以在传进该函数前将这几个参数定义好,然后以传地址的形式传进来,对于该函数本身,定义时参数是取地址的形式,就相当于是预定义好的变量(地址相同,数据类型相同),函数执行完毕,变量修改保存完毕。

    6、内联与宏

         都是替换,但是宏(#define)没有类型检查,内联函数有.

         宏不建议轻易使用,从项目安全等角度考虑。

    7、结构体

          结构体内的变量可以类型不同;

          定义在头文件中,可以方便多个cpp文件使用。

    8、全局与局域变量

          static、extern、auto

          extern 可以用来实现变量的全局性,当变量已经被定义过,在其他文件再使用时,可以使用extern 声明,extern 类型 变量;

          static 在类内部的表现,用来实现族类对象建的数据共享。在生成对象的时候,普通数据成员才有空间,而static成员在类声明的时候,就已经开辟了空间。

          static 数据成员,既属于类,也属于对象,但终归属于类

          static 作用域仅限于本文件

    9、初始化与赋值

         初始化与赋值不是相等的。

         初始化的时候如果没有给赋值,之后赋值的时候需要对其包含的子对象逐个进行赋值。

  • 相关阅读:
    【转】jquery-取消冒泡
    【转】android如何浏览并选择图片 音频 视频
    ListView防止滑动变色的小技巧
    【转】 Android经验: proguard 阻碍 webview 正常工作
    【转】获取android设备 id
    【转】android 选取图片
    eclipse 配置git ssh登录
    android 开启或者隐藏软键盘
    【转】如何设置Android软键盘的默认不弹出?
    【转】中国人唯一不认可的成功——就是家庭的和睦,人生的平淡
  • 原文地址:https://www.cnblogs.com/xiaoheizi-12345/p/11786007.html
Copyright © 2011-2022 走看看