C++总结
来源:互联网 发布:淘宝详情页跳出率70% 编辑:程序博客网 时间:2024/06/16 06:05
一:typedef
(1):作用:为一个已有的数据类型(int ,double等)声明一个或多个别名。
(2):语法形式:typedef 已有类型名 新类型名 例:(1)typedef int A; A n1,n2; (2)typedef double C,d; C n1; d n2;
二:枚举
(1):语法形式:enum 枚举类型名 {变量值列表}; 例:enum weekday {mon,tue,wen,thu,fri,sat,sun};
(2):对枚举元素按常量处理,不能对他们赋值
三:结构体
(1):结构体变量占内存大小可用sizeof运算求出:sizeof(类型名或变量名)
四:联合体
(1):联合体的语法形式和结构体相似
(2):联合体变量声明的语法形式: 联合名 联合变量名;
(3):联合体变量的引用形式: 联合变量名.成员名
(4):联合体也可以不声明名称,称无名联合体 例: union {int i;float f}; 访问:i=10;f=2.2;
它通常用作结构体的内嵌成员
五:函数的参数传递
(1): 函数在没有被调用之前没有为形参分配内存空间,调用时才分配。传参指形参与实参结合,结合方式:值调用和引用调用
(2):引用调用:一旦一个引用被初始化后就不能改为只想其他对象
六:内联函数
(1):一些功能简单,规模较小,使用频繁的函数可以设计为内联函数。
1。函数体内一般不能有循环和switch语句。
2。内联函数的定义出现在第一次被调用前。
3。对内联函数不能进行异常接口声明。 注:异常接口:
(2):语法形式:inline 类型说明符 被调函数名(含类型说明的参数表){函数体}
七:函数的重载
(1):两个以上的函数,具有相同的函数名,不同的形参个数或类型,编译器自动匹配确定调用哪个函数,就是函数的重载。
(2):重在函数的形参必须不同,且不要将功能不同的函数定义为重载函数
八:类的组合
(1):类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,他们之间是包含与被包含的关系
(2):类的成员函数既可以是基本数据类型也可以是自定义数据类型,也可以是类的对象
(3):创建类的对象时,如果这个类已经有内嵌对象成员,那么各个内嵌对象首先被自动创建。
(4):创建对象时既要对本类的基本类型数据成员进行初始化,又要对内嵌对象成员进行初始化
(5):组合类构造函数的一般形式:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表),。。。。。 {类的初始化}
(6):对基本类型的数据成员初始化的另一种方式:初始化列表,比赋值语句效率高。 例:Circle::Circle(float r):radius(r) {}
(7):组合类构造函数调用的顺序:先调用内嵌对象的构造函数,调用顺序是按照内嵌对象在组合类的定义中出现的顺序。再调用本类的构造函数。注:析构函数的调用顺序完全相反。
(8):组合类编写拷贝构造函数,需要对内嵌对象的拷贝构造函数传递参数
例:C类中包含B类的对象b作为成员,C类的拷贝构造函数形式: C::C(C &c1):b(c1.b) {...}
九:静态数据成员
(1):用static关键字声明 静态成员在每个类中只有一个拷贝
(2):静态数据成员具有静态生存期。静态数据成员不属于任何对象,因此只能通过类名访问。格式: 类名::标识符
(3):静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态的数据成员必须通过参数传递方式得到对象名,然后通过对象名访问
十:const常量
1.常引用:
常引用所引用的对象不能被更新。 声明形式:const 类型说明符 &引用名
2。常对象:
常对象声明的时候必须初始化 声明形式:类名 const 对象名;
3.常成员函数:
声明方式:类型说明符 函数名(参数表)const;
注意:1.const是函数的一部分,在函数定义时也要加上。
2.常成员函数不能更新对象的数据,也不能调用没有const修饰的其他成员函数
3.一个常对象只能调用他的常成员函数,其他的不能调用,即 常对象唯一的外接口方式
4.可用于区分重载函数 例:void print();和void print() const;
4.常数据成员
(1)任何函数都不能对常数据成员赋值,只能通过构造函数对其进行初始化
十一:对象数组
(1):即存放多个对象的数组 声明形式:类名 数组名[下标表达式]
(2):访问对象数组中对象的共有成员: 数组名[下标].成员名
(3):调用构造函数对每个对象进行初始化:若指明了初始值,调用方式:A a[2]={A(1,2),A(3,4)};
若未指明,调用方式: A a[2]={A(1,2)};
十二:指向类的非静态成员的指针
(1):声明指针的语句形式: 类型说明符 类名::*指针名;//指向公有数据成员的指针
类型说明符 (类名::*指针名)(参数表);//指向公有函数成员的指针
(2):对数据成员指针赋值: 指针名=&类名::数据成员名;
(3):访问数据成员形式: 对象名.*类成员指针名 or 对象指针名->类成员指针名
(4):对成员函数指针赋值: 指针名=&类名::函数成员名;
十三:运算符重载
(1):含义:是对已有的运算符赋予多种含义,使同一个运算符作用于不同类型时产生不同行为。其实质就是函数的重载
(2):重载形式:1:重载为类的成员函数
语法形式: 函数类型 operater 运算符(形参表)
{函数体;}
2:重载为类的友元函数
语法形式: friend 函数类型 operater 运算符(形参表)
{函数体;}
注:函数类型指明了函数返回值的类型 ,运算符即是要重载的运算符名称 例:要重载加法运算符 ,这里就写+
(1):作用:为一个已有的数据类型(int ,double等)声明一个或多个别名。
(2):语法形式:typedef 已有类型名 新类型名 例:(1)typedef int A; A n1,n2; (2)typedef double C,d; C n1; d n2;
二:枚举
(1):语法形式:enum 枚举类型名 {变量值列表}; 例:enum weekday {mon,tue,wen,thu,fri,sat,sun};
(2):对枚举元素按常量处理,不能对他们赋值
三:结构体
(1):结构体变量占内存大小可用sizeof运算求出:sizeof(类型名或变量名)
四:联合体
(1):联合体的语法形式和结构体相似
(2):联合体变量声明的语法形式: 联合名 联合变量名;
(3):联合体变量的引用形式: 联合变量名.成员名
(4):联合体也可以不声明名称,称无名联合体 例: union {int i;float f}; 访问:i=10;f=2.2;
它通常用作结构体的内嵌成员
五:函数的参数传递
(1): 函数在没有被调用之前没有为形参分配内存空间,调用时才分配。传参指形参与实参结合,结合方式:值调用和引用调用
(2):引用调用:一旦一个引用被初始化后就不能改为只想其他对象
六:内联函数
(1):一些功能简单,规模较小,使用频繁的函数可以设计为内联函数。
1。函数体内一般不能有循环和switch语句。
2。内联函数的定义出现在第一次被调用前。
3。对内联函数不能进行异常接口声明。 注:异常接口:
(2):语法形式:inline 类型说明符 被调函数名(含类型说明的参数表){函数体}
七:函数的重载
(1):两个以上的函数,具有相同的函数名,不同的形参个数或类型,编译器自动匹配确定调用哪个函数,就是函数的重载。
(2):重在函数的形参必须不同,且不要将功能不同的函数定义为重载函数
八:类的组合
(1):类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,他们之间是包含与被包含的关系
(2):类的成员函数既可以是基本数据类型也可以是自定义数据类型,也可以是类的对象
(3):创建类的对象时,如果这个类已经有内嵌对象成员,那么各个内嵌对象首先被自动创建。
(4):创建对象时既要对本类的基本类型数据成员进行初始化,又要对内嵌对象成员进行初始化
(5):组合类构造函数的一般形式:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表),。。。。。 {类的初始化}
(6):对基本类型的数据成员初始化的另一种方式:初始化列表,比赋值语句效率高。 例:Circle::Circle(float r):radius(r) {}
(7):组合类构造函数调用的顺序:先调用内嵌对象的构造函数,调用顺序是按照内嵌对象在组合类的定义中出现的顺序。再调用本类的构造函数。注:析构函数的调用顺序完全相反。
(8):组合类编写拷贝构造函数,需要对内嵌对象的拷贝构造函数传递参数
例:C类中包含B类的对象b作为成员,C类的拷贝构造函数形式: C::C(C &c1):b(c1.b) {...}
九:静态数据成员
(1):用static关键字声明 静态成员在每个类中只有一个拷贝
(2):静态数据成员具有静态生存期。静态数据成员不属于任何对象,因此只能通过类名访问。格式: 类名::标识符
(3):静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态的数据成员必须通过参数传递方式得到对象名,然后通过对象名访问
十:const常量
1.常引用:
常引用所引用的对象不能被更新。 声明形式:const 类型说明符 &引用名
2。常对象:
常对象声明的时候必须初始化 声明形式:类名 const 对象名;
3.常成员函数:
声明方式:类型说明符 函数名(参数表)const;
注意:1.const是函数的一部分,在函数定义时也要加上。
2.常成员函数不能更新对象的数据,也不能调用没有const修饰的其他成员函数
3.一个常对象只能调用他的常成员函数,其他的不能调用,即 常对象唯一的外接口方式
4.可用于区分重载函数 例:void print();和void print() const;
4.常数据成员
(1)任何函数都不能对常数据成员赋值,只能通过构造函数对其进行初始化
十一:对象数组
(1):即存放多个对象的数组 声明形式:类名 数组名[下标表达式]
(2):访问对象数组中对象的共有成员: 数组名[下标].成员名
(3):调用构造函数对每个对象进行初始化:若指明了初始值,调用方式:A a[2]={A(1,2),A(3,4)};
若未指明,调用方式: A a[2]={A(1,2)};
十二:指向类的非静态成员的指针
(1):声明指针的语句形式: 类型说明符 类名::*指针名;//指向公有数据成员的指针
类型说明符 (类名::*指针名)(参数表);//指向公有函数成员的指针
(2):对数据成员指针赋值: 指针名=&类名::数据成员名;
(3):访问数据成员形式: 对象名.*类成员指针名 or 对象指针名->类成员指针名
(4):对成员函数指针赋值: 指针名=&类名::函数成员名;
十三:运算符重载
(1):含义:是对已有的运算符赋予多种含义,使同一个运算符作用于不同类型时产生不同行为。其实质就是函数的重载
(2):重载形式:1:重载为类的成员函数
语法形式: 函数类型 operater 运算符(形参表)
{函数体;}
2:重载为类的友元函数
语法形式: friend 函数类型 operater 运算符(形参表)
{函数体;}
注:函数类型指明了函数返回值的类型 ,运算符即是要重载的运算符名称 例:要重载加法运算符 ,这里就写+
0 0
- C总结
- C 总结
- 【C++】总结
- 【C#】总结
- C---------------------总结
- c总结
- C#--总结
- c 总结
- c总结
- C总结
- C 总结
- 【总结】C语言总结!!!
- 数据类型总结 (C++,C#)
- [C语言]C总结
- 数据类型总结(C++,C#)
- 【C/C++】排序总结
- C/C++/VC随机数总结
- 【C/C++】realloc使用总结
- Android Disable NumberPicker的编辑功能
- Linux SPI总线和设备驱动架构之一:系统概述
- C++带参数默认值的函数
- shiro.ini 配置详解
- 男子特战队员演示的特战狙击,展示了贴近实战
- C++总结
- Quartz:Job和Trigger的关系
- 根据端口号查询进程pid,netstat -nptl
- poj1947 Rebuilding Roads
- 人脸识别经典算法二:LBP方法
- 关于使用RijndaelManaged 类加密解密数据的小结
- Android的Handler总结
- Objective-C 类的基础程序
- 浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程