4、 常对象、常函数 :
(1) 常对象 :只能调用常函数; const father p;
(2) 常函数 :成员函数之后加上const、函数内部不可以修改成员
属性;
代码:void func() const{}。
成员函数后面加const实质是修饰的是this的指向,this指针本身就是指针常量,指向不可以改,值可以改,再加上const之后,全都不可以改。 **注:普通对象也可以访问常函数。 **
但是在成员变量前加上mutable,常函数可以访问,常对象也可以访问。
5、 继承 :
(1)菱形继承:(虚基类)
一个动物类,一个马类,继承了动物类; 同样,一个驴类也继承了动物类。 这时,一个骡子类不仅继承了马类,也继承了驴类,这个时候从动物类里继承的数据很容易产生二义性,有好多数据,我们调用骡子类的时候到底用哪一个?
解决方法:在马类和驴类继承动物类的关键字前加上virtual,使其成为虚基类即可。 数据只保存最新赋值那一份。
class anmial{public:int m_age;};class ma:virtual public anmial{};class lv:virtual public anmial{};class luozi{};6、文件:
c++里对文件操作,包含的头文件#include。
文件分为两种:
①文本文件:就是记事本; 以ascii码形式存在计算机中;
②二进制文件:以二进制的形式存在计算机中。
操作文件三大类:
①ofstream:写操作;
②ifstream:读操作;
③fstream:读写操作。
写文件:
创建文件输出流对象:ofstream ofs;
打开文件:ofs.open(“文件路径”,打开方式);
写数据:ofs<0,就是循环队列元素个数;
(b)rear-front<0,需要加上循环队列的容量;
(c)rear-front=0,队列为空或者满。
(2)链式队列:
头指针指向队头结点,尾指针指向队尾结点。
队空条件:front=rear=null。
循环队列采用的是顺序存储结构;
一循环队列q(1:m),初始状态为front=rear=m,经过一些列操作后,front=30,rear=10.则,按照顺序查找下,最坏比较次数为m-30+10+1=m-19个元素,比较次数为m-20。
9、new运算符
new运算符是在堆区创建数据由程序员手动开辟,手动释放。 **new返回的是该数据类型的指针。 **
例如:int *p = new int(10);
释放:delete p;
例如:int *p = new int[10];
释放:delete []p;
Cypress物联网应用中能量收集技术解决方案
溶解氧传感器在污水处理中起到了很好的溶解氧监测作用
Python数据清洗和预处理入门完整指南
2000买iPhone 4S 详解二手机交易内幕
苏格兰的互动式定点灯光装置
C++学习笔记(二)
特斯拉的CyberTruck的零件
电流传感器分类
三极管和五极管的电流分配
MatterHackers发布新品 引入3D打印恢复功能
低功耗雷达模组在智能门锁中的应用
BC电池工艺全梳理
Aptina推出1/3英寸高清图像传感器MT9M031和MT9M021
浅析嵌入式数据挖掘模型应用到银行卡业务中的相关知识
鲍尔默带领微软再度启航
丰田与松下将会增加对高容量固态电池的研发资金
中国移动推出超级 SIM 卡,结合 NFC 可当车钥匙、金融认证等
次元光电推出首款可实现三种光色的COB光源
w5500原理图_w5500电路图
撇开华为, 魅蓝X和MX6如何选择?