C++Primer + 12章

本文深入解析了C++中类成员函数的作用,包括默认构造函数、拷贝构造函数、赋值操作符、默认析构函数及地址操作符,并详细阐述了深拷贝的概念与实现方法。同时,文章强调了在构造函数中使用new时的注意事项,以及如何手动定义显式拷贝构造函数和显式赋值操作符,以避免内存泄露等问题。

C++自动提供的类成员函数(隐式成员函数):

1 默认构造函数

2 拷贝构造函数

3 赋值操作符

4 默认析构函数

5 地址操作符


深拷贝的句法:

背景:当类中使用new,delete动态使用内存时,程序猿应当手动定义 显式拷贝构造函数 与 显式赋值操作符

显式拷贝构造函数:

new .... 申请新内存

memcpy... 内存块复制


显式赋值操作符:

释放以前的内存,避免内存泄露

避免自己赋值自己

内存块复制

返回一个指向调用对象的引用


静态类成员函数:

关键字 static

写法:在类声明中声明函数同时定义函数

用法:只能通过类名+作用域限定符::来调用

特性:只能调用静态的类数据成员


在构造函数中使用new时,注意事项:

1 构造函数new 析构函数delete

2 new 对应 delete, new[ ] 对应delete[ ]

3 如果多个构造函数 new必须用法一致,new or new [ ],因为只有一个析构函数

4 显式定义拷贝构造函数

5 显式定义复制操作符


C++函數 返回對象的形式:

1 返回指向const對象的引用(函數參數為const 引用,這種用法將被引用參數全部或部分原樣返回)

2 返回指向非const對象的引用(同1,但是允許對函數參數進行修改)

3 返回對象 (返回被調函數中的局部變量)

4 返回const對象 (防止被調函數返回的變量被緊隨其後的操作修改,比如賦值)


指向对象的指针的语法:

1 声明写法:

2 声明同时初始化:

3 使用new来初始化指向对象的指针:

4 使用->来访问类方法

5 使用*来获得对象


布局new操作符用于类对象的语法:

布局new操作符创建的类对象过期时,必须显式的调用析构函数。用该对象的指针调用析构函数方法。


...

一种特殊的初始化数据成员的句法:

类中非静态const数据成员的初始化:构造函数+成员初始化列表

类中声明为引用的成员初始化:构造函数+成员初始化列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值