当前位置: 首页 > news >正文

c++语法小结

目录

  • 命名空间
  • 构造函数 析构函数 初始化列表 构造函数的隐式调用
  • new delete 和 malloc free
  • 静态成员 常量成员
  • 拷贝构造函数 引用
  • 缺省函数
  • 友元函数和友元类
  • 函数重载 默认参数
  • 函数模板
  • 类模板
  • 封装
  • 继承
  • 多态
  • 设计模式

命名空间

防止同名:
只是用于区别同名函数和同名全局变量(编译时,在链接阶段,找定义时用到)
比如一个大型项目中,分不同模块,由不同的人写,则可能出现同名函数或同名全局变量

构造函数 析构函数 初始化列表 构造函数的隐式调用

构造函数:是对象申请内存空间之后自动调用的函数(类似于c中的变量的定义)
没有返回值 类名
析构函数:是对象的内存空间被销毁前自动调用的函数
没有返回值 ~类名 参数列表为空

类名::类名(参数1,参数2,…)
:类成员(参数1),类成员(参数2) {

}

同一个类中可以有多个参数列表不同的构造函数(函数重载
当且仅当一个类中没有声明构造函数时,编译器会自成一个无参无内容的构造函数(缺省函数

在构造函数只有一个参数时,就可能出现构造函数的隐式调用现象(实际上是为了让c++的对象可以像c一样,用容器 = 值的形式)
例:Stu s1 = “Tom” (隐式调用构造函数 Stu s1(“Tom”))
在构造函数声明前加上explicit关键字,可禁止构造函数的隐式调用

new delete 和 malloc free

c++中的new,delete和c中malloc,free区别:
malloc,free是函数,而new,delete是关键字或者说是表达式
在new和delete对象时,会调用构造或析构函数

Stu *p = new Stu();
delete p;

Stu *p = new Stu[5]; //此时会调用无参的构造函数
delete []p;

静态成员 常量成员

静态成员:
属于整个类的属性或行为,而非属于某个对象的
在定义类时,静态成员变量一定要定义
静态成员函数,本质上没有this指针

常量成员:
常量成员函数,本质上this指针为常量指针

拷贝构造函数 引用

引用:
本质是对象的别名,作用其实相当于c中的指针
不新建对象,可在传递函数参数时,避免调用构造函数
初始化时必须绑定,且一经绑定无法解除
变量(c的结构)只能用指针,对象(c++特有的结构)大多用引用

拷贝构造函数:
用一个对象,创建另一个对象时
类似于c的变量的值传递,它是为了解决对象的值传递
唯一的形参必须是构造对象的引用
调用:在创建对象时调用,否则可能调用赋值运算函数
1. 对象作为函数参数(值传递)
2. 对象作为函数返回值(值传递)
3. 用一个对象给另一个对象初始化

缺省函数

在定义类时,如果没有显式写出这些函数,编译器在编译代码时,会自动生成这些缺省函数

  1. 无参的构造函数
  2. 无参的析构函数
  3. 带一个参数的拷贝构造函数
  4. 带一个参数的赋值运算函数

其形式大致如下:

// 构造函数 A(){} // 带一个参数的拷贝构造函数 A(const A& a) { // 这儿调用了赋值重载函数 *this = a; } // 析构函数 ~A(){} // 重载赋值操作符 A& operator =(const A& a) { // 这个地方可能有点不当,只是为了表明这是一个浅拷贝 memcpy(this, &a, sizeof(A)); return *this; }

友元函数和友元类

可以直接访问其非共有成员

例:
friend Complex add(const Complex& other1,const Complex& other2);
friend Class Stu;

函数重载 默认参数

为了提高复用性:
函数重载:多个的函数名相同;参数不同(参数的参数,参数的类型),函数实现方式不同
函数模板:参数类型不同,函数实现方式相同
回调函数:函数实现方式不同,参数和返回值相同(一个回调指针指向多个回调函数)

默认参数和函数重载可能会出现二义性问题,例void fun()和void fun(int i=0)

函数模板

特化
template<typename T>boolisEqual(T i,T j);template<typename T>boolisEqual(T i,T j){returni==j;}template<>bool isEqual<char*>(char*i,char*j){returnstrcmp(i,j)==0;}
偏特化

类模板

特化 偏特化 类模板做出的五大容器,参见...

封装

继承

三种继承方式 多继承 菱形继承 虚继承

多态

虚函数 纯虚函数、抽象类 基类指针

设计模式

单例模式 工厂模式 观察者模式 策略模式
http://www.jsqmd.com/news/434701/

相关文章:

  • 2026本地商家必看|四点拿捏年轻人消费心理 - Redbook_CD
  • 工业清洁度检测设备哪个牌子好?西恩士颗粒物清洁度测试装置品牌排行推荐 - 仪器权威论
  • 2026年无锡三合一过滤机价格大揭秘,技术强专业厂家费用分析 - mypinpai
  • 揭秘书匠策AI:课程论文创作的“智慧魔法棒”
  • 轻松搞定万里通积分卡回收:实用的方式与步骤分享 - 团团收购物卡回收
  • 2026梯式桥架推荐:聚焦工业厂房使用场景,十家品牌口碑与性价比评价 - 速递信息
  • 2026年嘉定区最好的EPS蓄电池,西恩迪蓄电池,kelong蓄电池公司选型推荐指南 - 品牌鉴赏师
  • 总结2026年北京有实力的市政管道清淤公司,哪家靠谱 - 工业品网
  • 2026年搅拌器性价比排名,华懋化工优势有哪些 - 工业品网
  • 颗粒物清洁度检测系统品牌排行揭秘:西恩士为何是工业清洗设备首选? - 技术权威说
  • 颗粒检测系统品牌怎么选?西恩士工业清洁度分析设备技术深度解析 - 仪器权威论
  • 2026年SF6气体报警装置行业售后服务大比拼:国内外品牌谁更贴心? - 品牌推荐大师
  • 从入门到工程实战:一本真正讲“如何做好FPGA”的书 ——《深入浅出玩转FPGA(第4版)》系统解读
  • 2026年江苏比较好的广场立体花坛设计,仿真立体花坛制作,校园立体花坛造型公司专业服务推荐榜 - 品牌鉴赏师
  • 2026年江苏靠谱的企事业单位绿植租摆,星级宾馆花卉绿植租摆,事业单位绿植长期租赁公司行业优质推荐 - 品牌鉴赏师
  • Gemini 3.1 Flash 生图:速度与质量如何取舍?一套更适合上线的“两段式”实践方案
  • 2026年3月安全馆厂家推荐榜,甄选企业实测解析 - 品牌鉴赏师
  • 共话搅拌器按需定制,不错的搅拌器工厂华懋化工有何特色 - 工业设备
  • 2026年南京口碑好的室外绿化养护,绿化养护管理,园林绿化养护公司推荐榜单 - 品牌鉴赏师
  • 基于数字图像相关(DIC)的两幅图像位移计算方法
  • 2026山西周边商用净水设备供应商哪家强?看这里,净水维修服务/净水器/商用净水解决方案,商用净水设备公司哪家好 - 品牌推荐师
  • 颗粒物清洁度检测设备多少钱一台?西恩士品牌排行与价格深度解析 - 技术权威说
  • 细谈成本低的无水化细胞复苏仪,杭州靠谱的品牌排名如何? - 工业品牌热点
  • 2026托盘式桥架推荐:基于本土适配性与成本可控性的十家品牌深度评测 - 速递信息
  • 2026槽式桥架推荐:用户关切耐用性与售后保障,十家品牌实地评测排名 - 速递信息
  • 2026年3月轻质垫层混凝土厂家推荐,精准检测与稳定性能深度解析 - 品牌鉴赏师
  • 探寻2026年知名靠谱的专利申请代办机构,如何选择很重要 - mypinpai
  • 2026年 制氮碳分子筛厂家推荐排行榜:高效吸附与长寿命性能的工业气体净化核心材料精选 - 品牌企业推荐师(官方)
  • 2026年江苏可靠的园林绿化景观设计,平玮园林绿化,双绿园艺公司选型优选指南 - 品牌鉴赏师
  • 2026海外留学生求职机构哪家靠谱:服务口碑+成功率排名(必看) - Matthewmx