C++ Primer Plus学习笔记
2022/7/23 1:25:16
本文主要是介绍C++ Primer Plus学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
有关返回对象的说明
有几种返回方式可供选择
1指向对象的引用
2指向对象的const引用
3const对象
使用const引用的作用就是为了提高效率
返回指向非const对象的引用
两种常见的返回非const对象的情形是:
1.重载赋值运算符
2.重载与cout一起使用的<<运算符
指针和对象小结
1.使用常规表示法来声明指向对象的指针
String *glamour;
2.可以将指针初始化为指向已有的对象
String *first = &sayings[0]
3.可以使用new来初始化指针,这将创建一个新的对象
String * favorite = new String(saying[choice]);
4.对类使用new将调用相应的类构造函数来初始化新创建的对象;
String *greep =new String ;
String *glop = new String("my my my");
String *favorite = new String(sayings[choice]);
5.可以使用->运算符通过指针访问类方法
if(saying[i].length <shortest->length())
6.可以对对象指针应用解除引用运算符(*)来获得对象
if(saying[i]<*first)
first = &sayings[i];
复习各种技术(总结+使用场景)
1.重载<<运算符
它和cout一起显示对象的内容时,请定义下面的友元运算符函数
ostream & operator<<(ostream &os,const c_name &obj)
{
os<<....;
return os;
}
2.转换函数
要将单个值转化为类类型,需要创建如下所示类构造函数
c_name(type_name value);
c_name为类名,type_name是要转换的类型的名称
要将类转换为其他类型 需要创建原型如下所示的类成员函数
operator type_name();
注意:在声明构造函数的时候使用关键字explicit,以防止被用于隐式转换
3.其构造函数使用new的类
(1)对于指向的内存是由new分配的所有类成员,都应在类的析构函数中对其使用delete,该运算符将释放分配的内存
(2)如果析构函数通过对指针类成员使用delete来释放内存,则每个构造函数都应当使用new来初始化指针,或将它设置为空指针。
(3)构造函数中要么使用new[],要么使用new,而不能混用。如果构造函数使用的是new[],则析构函数应当使用delete[];如果构造函数使用的是new,则析构函数应使用delete
(4)应定义一个分配内存的复制构造函数(拷贝构造函数),这样程序能将类对象初始化为另一个类对象,原型:className(const className &)
(5)应定义一个重载赋值运算符的类成员函数,其函数定义如下(c_pointer是c_name的类成员,类型为指向type_name的指针)
c_name &c_name::operator=(const c-name &cn)
{
if(this == &cn)
{
return *this;
}
delete[]c_pointer;
c_pointer = new type_name[size];
return *this;
}
这篇关于C++ Primer Plus学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升