• c++ primer第12章类的一些知识点总结

    1:关于inline函数

      在类定义体内部定义的成员函数即为inline函数,假如说我们想定义一个成员函数为inline类型,那么可以这样做。声明为inline类型,并且函数的实现和类的定义放在一个文件中(提倡这样做),并且定义时也要指明是inline类型的。

    //Example.h

    class A{

        void x(){……} //这是inline函数

        inline void y();  //声明为inline类型的函数

    };

    inline void A:;x(){ ……}  //在定义时仍然要指定是inlien类型的,并且提倡和类定义体放在一个文件中

    2.关于类声明和类定义

      在使用类之前必须要有类声明(最少的)。如果只有类声明而没有类定义,那么它是一个不完全类型

      class X;//类声明

      class X{……}; //类定义

      不完全类型的使用是受限制的。 不能定义该类型的对象,只能定义该类型的指针或者引用,或者是定义(注意,不是声明)一个函数,这个函数的形参或者返回类型可以使不完全类型。。

    3.const成员和const重载

      类的非static成员函数默认是有this指针的,加入成员函数是const型,那么它的是真默认是const类型的,

      class A{

        void test() const {……}

      };

      则在test函数中this指针的形式应该是 const A* thsi=&对象,所以不能再const成员函数中去改变对象的数据成员.

      

      基于const的函数重载有两种形式: 1: 基于成员函数是否为const,可以重载为一个成员函数 2:基于指针形参是否只想const可以重载一个函数

      void f(int*);

      void f(const int*);//这两个是重载函数

    4.类作用域中名字查找

      class A{

         In x;

       typedef int In;  //这是错误的

      };

    5.隐式类型转换

      构造函数的隐式类型转换可以通过explicit关键字终止

    6.static成员

      static成员的定义时在类定义外部,和类的成员函数同级别。也可以把它看做是类的成员函数的定义,因此它可以使用类的private成员

      const static成员可以在类的定义体中指明它的值,但是只限于是常量表达式!!

      static变量在类的定义体外部初始化的时候不需指明static关键字,否则错误。

      

  • 相关阅读:
    史上最强验证
    Yii2 return redirect()
    一次线上问题引发的思考
    一次前端体验优化
    RSA For PHP
    判断是否字符串是否是JSON
    过滤Xss
    Yii2 中日志的记录
    Yii2 中禁用csrf校验
    开始。
  • 原文地址:https://www.cnblogs.com/buxianghe/p/2473096.html
Copyright © 2020-2023  润新知