C++开发
2021-11-26 19:54:02 2 举报
AI智能生成
从C进阶到C++
作者其他创作
大纲/内容
为什么选择QT+C/C++开发
汽车仪表盘
医用监护仪
物联网控制台
开发PC相关软件
QT典型应用
导入
swap.cpp
debug.cpp
默认参数:void debug(const char *ptr= \"------\");
cmp.cpp
new_delete.cpp
语法升级
level_up.zip
C程序写法升级史及显露出的问题
class.cpp
类的声明
类的初始化
创建类时自动调用
初始化表
this指针
特征
class_construct.cpp
默认构造函数 A();
class_copy.cpp
拷贝构造函数 A(const A &x); //深浅拷贝问题
赋值构造函数 operator=?;
分类
构造函数
定义:~A();
类的解构
销毁类时自动调用
析构函数
普通成员函数
成员函数
常数据成员(构造函数初始化表赋值) class A{public: A():x(100){} const int x;}
const.cpp
常成员函数 void func() const;
常对象 const A a;
常成员、常对象
静态成员的声明 static int x; static const int x = 10;
static.cpp
静态数据成员初始化 类外:static int A::x = 10;
定义:static void func(); //能访问静态成员
调用方法:A::func();
静态成员函数
静态成员(属于类不属于对象)
friend.cpp
友元类 friend class B;
friend_func.zip
友元函数 friend void func();
友元成员函数friend void A::func();
友元(破环封装)
对显露出问题的C++处理
类与对象
概念的升级
思维的升级
01 从C到C++及类与对象
C++准许以运算符命名函数
string a = \"hello\";a += \"world\
概念
可以重载的运算符
成员函数式(第一行形参是对象的引用)
友元函数式(左操作数不是本身,可交换型)
实现形式
+ - * / ++ --
mytimer.cpp
数学运算符
== <= >= !=
关系运算符
[ ]
class_copy_new.cpp
= 赋值运算符
converter.cpp
() 仿函数
<< 输出运算符
特殊运算符
运算符分类
运算符重载
int a;char arr[] = \"hello\";std::cout<<a<<arr<<std::endl;
基本类型自动匹配
cout<<hex<<10<<endl;
使用控制符控制输出格式
cout.unsetf(ios::dec);cout.setf(ios::hex);cout<<10<<endl;
使用流对象的成员函数控制输出格式
输出格式控制
cin_cout.cpp
标准输入输出流
点
线
有粗细的线
ARR.zip
组合
继承(基类,派生类)
运算符重载及组合与继承
base.cpp
虚函数 virtual
形式:virtual void func() = 0;
目的:统一接口、强制实现
shape.cpp
纯虚函数、纯虚类
基类指针释放派生类对象
虚析构函数(内存泄漏)
多态
atoi.cpp
字符串转数字
try{ }catch(myexception &e){ }
调用
atoi_exception.cpp
自定义异常类
预定义异常类
异常(try_datch)
reinterpret_cast<new type>(expression)
将一个类型的指针转换成另一个类型的指针,它也允许从一个指针转换为整形类型
reinterpret_cast
const_cast<new type>(expression)
const指针与普通指针的相互转换,注意:不能将常量指针变量转换为普通变量
const_cast
static_cast<new type>(expression)
主要用于基本类型间的相互转换,和具有继承关系间的类型转换
static_cast
dynamic_cast<new type>(expression)
只有类中含有虚函数才能用dynamic_cast;仅能在继承类对象间转换dynamic_cast具有类型检查的功能,比static更安全
dynamic_cast
标准转换函数
成员转换函数
自定义转换函数
mempool.cpp
隐式转换(explicit)
转换函数
多态、异常、转换函数
template.cpp
模板函数
template <class T>class List{public: List(); ~List();private: T arr; int name;};
模板类
类型模板
ARR2.zip
非类型模板
template <>class List{public: List(); ~List();private: T arr[SIZE]; int num;};
特化
偏特化
模板特化
模板
insert(); push_back(); erase(); empty(); begin(); end(); ...
vector_list.cpp
vector(顺序表)
insert(); push_bach(); erase(); pop_back(); empty(); front(); back(); sort(); ...
list.cpp
list(链表)
insert(); push_back(); erase(); pop_back(); empty(); Push_front(); ...
deque(双端队列)
顺序容器
set<int> a;a.insert(1);a.insert(3);a.insert(5);if(a.end != a.find(3)) cout<<\"have3\"<<endl;if(a.end() != a.find(30)) cout<<\"have30\"<<endl;
set //tree
map.cpp
map()(键值对)
multimap
multiet
关联容器
push(); top(); pop();
statck(栈)
push(); front()/back(); pop();
queue
proority_queue
适配器
容器
list_iterator.cpp
迭代器
algorithm.cpp
算法
STL
模板及STL标准模板库
C++开发.zip
C++开发
0 条评论
回复 删除
下一页