C++语法要点整理

1.类有默认复制构造函数 默认构造函数是浅拷贝的,复制后两个对象指向一个内存空间
2.自己写的类的复制构造函数不一定能做到复制功能 看自己怎么写了。(说明复制构造函数不一定就能起到复制的作用!!)
3.复制构造函数起作用的三种情况:
(1)用一个对象初始化另外一个对象
(2)如果有个函数的参数是类A的对象,那么该函数被调用时,类A的复制构造函数将被调用
(3)如果函数返回值是类A的对象,函数返回时,A的复制构造函数将被调用。
4.类型转换构造函数 可以转类型赋值
5.sizeof不计算静态成员变量。
6.必须在定义类的文件中对静态成员变量进行一次说明或初始化。否则编译能通过,链接不能通过!
7.静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数。
8.在构造函数中要是有对静态成员变量的操作,则有必要注意复制构造函数最好也自己写,加上静态成员变量的相应操作语句(一般都是必要的)。

----------------------------------------------------------------------------------------------------------------------------------

三种情况必须在类构造函数初始化列表初始化(资料整理)

关于类的构造函数,可以分为两个部分,初始化部分(初始化列表)和计算部分(花括号间的赋值运算),在花括号作用域间进行的运算不是初始化,而是赋值。

对于必须在定义时初始化的情况在类构造函数中也是相同的
总结如下:
1、const成员:常量,不能被改变,定义的同时必须初始化
2、引用成员:&,别名,与目标共享地址,定义的同时必须初始化
3、没有默认构造函数供系统自动调用:
(1)对象成员:A类的成员是B类的对象(即A是封闭类),在构造A类时需对B类的对象进行构造, 当B类没有默认构造函数时需要在A类的构造函数初始化列表中对B类对象初始化

(2)类的继承:派生类在构造函数中要对自身成员初始化,也要对继承过来的基类成员进行初始化,当基类没有默认构造函数的时候,通过在派生类的构造函数初始化列表中调用基类的构造函数实现

----------------------------------------------------------------------------------------------------------------------------------

非晶态成员函数中可以直接使用this指针来指代该函数作用的对象的指针。比如,可以在一个成员函数当中通过return *this 来返回函数作用的对象。

除了常量变量外还可以写常量对象,常量成员函数。

常量对象很好理解,不能修改对象的值。常量成员函数(const加在类的成员函数说明的后面)不能调用同类的非常量成员函数(静态成员函数除外),不能修改其所作用的对象(静态成员变量除外)。

对象作为函数参数时,生成该参数需要调用复制构造函数,效率低。故,经常用常引用来解决,提升效率的同时,保证了对象不会被修改。

----------------------------------------------------------------------------------------------------------------------------------

派生类的写法: class 派生类名:public 基类名

                        {

                            };

基类的protected成员可以被下列函数访问

·基类的成员函数

·基类的友元函数

·派生类的成员函数可以访问当前对象的基类的保护成员

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值