C++primer难点之类

类的难点解析:

类三大特性:继承,多态,封装

访问权限控制:public  private protect

Inline成员函数:1 在类内部定义的成员函数,将自动被作为inline处理

               2 如果是显示声明inline 即不放在类定义体内,该函数定义应该放在.hl文件里,因为它对于使用它的,cpp文件要可见,仅仅声明是不够的。

              3  inline关键字的指定既可以在类里面声明时指定也可以在类外面定义指定。

4 定义lnline函数有3中方法。

 不完全类型:如果该类是不完全的,则其数据成员只能是指向此类的指针或引用。

             Class Note

{ int  a;  Note *pte; Note &pte};

             编程常见例题:定义两个类 X和Y,X中有一个指向Y的指针,Y中有一个X类型的对象。

        Class Y; Class X{Y * py}Class Y{X objx; }

This 指针:百年避不开的话题 :何时需要用到this呢?

     当我们需要将一个对象作为整体引用时:就需要

     Screen& Screen::move(int x)

     {

      Return *this;

}

这样之后可以通过move函数获取对象其他的成员:obj.move().move();

Const函数:const对象只能使用const成员 ,给予const关于指针和引用可以重载。

          Const成员函数等价于constthis   常量成员函数

类的作用域:

l  函数的返回类型不一定在类的作用域中详情看C++primer第四版 P381

类作用域的名字查找顺序:1 先检查成员函数局部作用域中的声明:注意函数参数的声明

                        2检查所有类成员的声明

                        3检查此成员函数定义前的作用域  例如全局变量

         如果函数中的成员变量被参数屏蔽,可以通过this等手段引用

构造函数:1构造函数: 由于常量构造函数的缘故所以不需要Const构造函数。

         2初始化列表:初始化顺序是以类中声明的为主。

         3不带参数的构造函数与只有一个参数的构造函数(但是有默认实参)导致默认构造函数有歧义

Static类成员:不是类对象的组成部分

      Static成员函数:不能声明为Const也不能声明为虚函数,没有this指针。

Static数据成员:必须在定义体的外部定义并且初始化,且关键字static只能在类中声明,但是有一个例外const static 数据成员可以在类的定义体中初始化,但是其任然需要在类的定义体外面定义但是此时可以不提供初始值,另外static数据成员可以做默认实参。

个人意见,有不对的地方欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值