侯捷速刷1面向对象上

C与C++

C++提供了类与对象的特点

字符串相当于一个ptr,会指向字符串在哪个地址,四个字符串,大小为四个指针

文件组成

在这里插入图片描述
头文件
在这里插入图片描述

封装

数据一般都是private,只有自己人看到,可以public,privat交替写
在这里插入图片描述

想要privat的数据,可以先访问public的函数,通过函数来传递数据。

构造函数

C++,想要创建一个对象,构造函数会自动创建

特点

函数名称必须和类相同,无返回值,构造函数特有的一种写法 r设到re区中,i设到im区中,在初始化阶段赋值
下面那个问题是可以的,但是效率差一些
在这里插入图片描述

:后面可以做的事情是设初值,和初始化

不带指针的,就不太需要析构函数

重载

图中问题中,会出现二义性,会编译错误
在这里插入图片描述

能够重载原因是因为,编译器会经过编译,根据函数名和参数列表,会得到一个全新的实际名称,这就是重载相同函数时可以被区分的原因

不建议将构造函数放到privat里头,不然的话很难调用,要用单例模式才行
在这里插入图片描述

对于不想改变数据的函数,为常量成员函数,即加个const,问号这里不可以,因为调用时const,但是如果函数体里面没有加对应const的话,会产生二义性
在这里插入图片描述

传值或者引用

引用相当于指针,传引用相当于传指针
在这里插入图片描述

友元

可以不用通过函数取的private 的数据,可以直接拿
在这里插入图片描述
注意
在这里插入图片描述
最好一直用引用传值,不能改变的话加const,且记住局部变量不允许传引用出去
在这里插入图片描述

引用接收方式
在这里插入图片描述
非成员函数的操作符重载(不是在类中定义的函数)
在这里插入图片描述
在这里插入图片描述

浅拷贝

两个指针指向同一个区域,用指针a改变区域,指针b也受影响
在这里插入图片描述
在这里插入图片描述

堆栈内存

在这里插入图片描述
栈的生存周期
在这里插入图片描述
静态对象特性
在这里插入图片描述
全局
在这里插入图片描述
内存泄露
在这里插入图片描述
在这里插入图片描述
delete有两步,先是删除动态分配的内存,再分配string本身的指针
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意

内存泄漏的不是灰色区域,而是灰色区域的指针指向的空间
在这里插入图片描述
在这里插入图片描述
静态数据要在类外设初值,静态函数调用方式可以在没有对象的时候调用,也可以通过对象调用
在这里插入图片描述

类鱼类的关系-compostion

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继承
在这里插入图片描述
最好将父类的析构函数设置为virtual
在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部