C++中的类和对象

对象是由类实例化得到的,由数据和行为组成,数据由对象的属性来表示,行为由对象的方法来表示。

(1)对象初始化——构造函数

构造函数用来完成对象的初始化,完成内存空间申请,给成员变量赋初值等工作。

其有如下几个特点:

(a)可重载(b)无返回值(c)构造函数是共有的

(2)默认构造函数有何特点

(a)创建对象时编译器自动创建和调用(b)无参数,函数体为空(c)仅当没有自定义构造函数时编译器才会自动创建

(3)如何拷贝构造函数

(a)对象以值方式传入函数体,即函数的形参是类的对象(实参传给形参时,调用拷贝构造函数)

(b)对象以值方式从函数返回,即函数返回值为对象。

(c)对象需要通过其他对象进行初始化

(4)深拷贝和浅拷贝有何区别

(a)当拷贝对象中包含其他对象的引用时,如果需要复制引用对象指向的内容,而不是引用(内存地址),则为深拷贝,否则为浅拷贝

(b)浅拷贝就是成员数据之间的赋值,当值拷贝时,两个对象拥有相同的资源;而深拷贝是先将资源复制一份,使对象拥有不同的资源,但是资源内容是相同的

(c)与浅拷贝不同,深拷贝在处理引用时,如果改变新对象内容将不会影响旧对象内容

(d)与深拷贝不同,浅拷贝资源释放后可能产生资源归属不清楚的情况,从而导致错误

(5)析构函数

特点:(a)不可重载(b)无返回值(c)没有参数

注意拷贝赋值函数调用时,存在局部对象,故而会自动调用析构函数。

(6)静态成员变量和静态成员函数

静态成员变量不是实例对象的一部分,是所有对象所共有的,因此它必须咋类的内部声明,在类的外部定义。

静态成员函数也不是实例对象的一部分,与非静态函数相比,有如下不同:

(a)不允许在静态成员函数中直接访问非静态成员变量

(b)不允许将静态成员函数定义为虚函数

 

参考书籍: 范立峰 李世欣 《你必须知道的222个C++语言问题》

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值