day01
来源:互联网 发布:gdi高级编程 pdf 编辑:程序博客网 时间:2024/04/30 10:53
一,c++的简介
1.1 发展历史
80年代 贝尔实验室 本贾尼
83年 正式命名 c++
87年 gnu 指定了c++标准
92年 微软 IBM制定了c++标准
98年 ansi/ISO 制定 了c++98标准
03年 ISO c++03
11年 ISO c++0x
g++ **.cp -std=c++ox
1.2 c++和c的关系
c++ 是建立在c的基础上的
c++ 对类型 的检查更加严格
c++扩展c语言
面向对象编程(以类的方式来组织代码)
运算符重载(一种函数的特殊的表现形式)
支持异常处理(一种新的错误处理方式)
泛型和模板(类型通用编程)
二,第一个c++程序
2.1 源文件
推荐以.cpp结尾
可以是.C .cxx .c++ .c .cpp
2.2 头文件
标准的c++头文件中 基本上没有.h
/user/include/c++/4.6
#include<iostream>
#include<string>
在c++程序中使用标准c 的头文件
去尾加头
#include<stdio.h>---->#include<cstdio>
#include<string.h>---->#include<cstring>
在c++程序中使用 使用系统c 的头文件
原样导入
#include<unistd.h>
#include<pthread.h>
在c++ 程序中使用自定义的头文件
#include "data.h"
2.3 使用库函数 正常使用
cout<<"hello"<<endl;
printf("hello\n");
cin>>age;
scanf("%d",&age);
c的库函数 输入输出需要指定输出格式
c++ 的cout cin 可以自动识别格式
2.4编译器
g++ 可以使用 gcc 但需要指定链接库 -lstdc++
编译选项完全和gcc相同
-o 指定输出文件名
-c 编译
-E 预处理
-S 生成汇编
-l 指定库名
-L 指定库的位置
-I 指定头文件的位置
-On 优化
-g 生成GDB调试信息
2.5 using namespace std;
使用命名空间 std
3.1 概念
把一组相关的类型 函数 等组织到一起 然后为这个逻辑结构起一个逻辑名
3.2
便于逻辑上划分模块
避免命名冲突
3.3语法
namespace 空间名{
// 正常程序的书写
}
3.4举例
3.5 如何使用命名空间
1 使用空间名::数据的方式
2 使用using 声明
using 空间名::数据名;
引入冲突回到第一种
3 使用命名空间 指令
using namespace 空间名;
3.5命名空间嵌套
namespace 空间名1{
namespace 空间名2{
}
}
3.6无名命名空间
如果一些没有定义在任何命名空间中,则这些数据会被自动定义在无名命名空间
访问数据方式 ::数据名;
namespace {
}
四,c++中的结构体联合枚举
4.1 结构体
定义的语法完全和c相同
不同点:
在表达类型的时候 可以省略struct 关键字
结构体中 可以定义函数
没有定义任何成员的结构体在c++中大小是1
c语言中大小是0
4.2 联合体(多个变量共享一份内存)
定义的语法完全和c相同
不同点:
在表达类型时
可以省略union 关键字
c++中支持匿名联合
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
五,c++中的bool类型
c++ 本身就直接支持bool 类型 而c语言使用bool
类型需要导入一个头文件#include<stdbool.h>
bool类型的值 只有true 和false
但bool类型的变量可以赋任何类型的值 只有四个代表假其他都是真 false 0 NULL '\0'
当输出bool类型数据时 默认把它作为整数处理 真就是1 假就是0
六,c++中的符号替换
&& and
|| or
& bitand
# %:
{ <%
七, c++ 中的函数和c函数的不同
7.1 c++中的函数 无参参数列表严格匹配
无参代表没有任何参数 void 型参数依然可用
void testa(void);
7.2 不再支持 c中的隐式申明,函数调用之前要么进行前置定义要么进行前置声明
7.3 函数的返回值类型不能省略 不支持c中默认int 类型的机制。main函数除外。
八,函数重载 overload
8,1概念
在同一个作用域中 函数名相同 参数列表不同的函数允许的这叫函数重载
参数列表不同:
参数的类型不同 参数的个数不同
参数的顺序不同
8.2 举例
8.3 定义一个函数指针 使用函数指针调用上面例子中的第二个函数。
1.1 发展历史
80年代 贝尔实验室 本贾尼
83年 正式命名 c++
87年 gnu 指定了c++标准
92年 微软 IBM制定了c++标准
98年 ansi/ISO 制定 了c++98标准
03年 ISO c++03
11年 ISO c++0x
g++ **.cp -std=c++ox
1.2 c++和c的关系
c++ 是建立在c的基础上的
c++ 对类型 的检查更加严格
c++扩展c语言
面向对象编程(以类的方式来组织代码)
运算符重载(一种函数的特殊的表现形式)
支持异常处理(一种新的错误处理方式)
泛型和模板(类型通用编程)
二,第一个c++程序
2.1 源文件
推荐以.cpp结尾
可以是.C .cxx .c++ .c .cpp
2.2 头文件
标准的c++头文件中 基本上没有.h
/user/include/c++/4.6
#include<iostream>
#include<string>
在c++程序中使用标准c 的头文件
去尾加头
#include<stdio.h>---->#include<cstdio>
#include<string.h>---->#include<cstring>
在c++程序中使用 使用系统c 的头文件
原样导入
#include<unistd.h>
#include<pthread.h>
在c++ 程序中使用自定义的头文件
#include "data.h"
2.3 使用库函数 正常使用
cout<<"hello"<<endl;
printf("hello\n");
cin>>age;
scanf("%d",&age);
c的库函数 输入输出需要指定输出格式
c++ 的cout cin 可以自动识别格式
2.4编译器
g++ 可以使用 gcc 但需要指定链接库 -lstdc++
编译选项完全和gcc相同
-o 指定输出文件名
-c 编译
-E 预处理
-S 生成汇编
-l 指定库名
-L 指定库的位置
-I 指定头文件的位置
-On 优化
-g 生成GDB调试信息
2.5 using namespace std;
使用命名空间 std
3.1 概念
把一组相关的类型 函数 等组织到一起 然后为这个逻辑结构起一个逻辑名
3.2
便于逻辑上划分模块
避免命名冲突
3.3语法
namespace 空间名{
// 正常程序的书写
}
3.4举例
3.5 如何使用命名空间
1 使用空间名::数据的方式
2 使用using 声明
using 空间名::数据名;
引入冲突回到第一种
3 使用命名空间 指令
using namespace 空间名;
3.5命名空间嵌套
namespace 空间名1{
namespace 空间名2{
}
}
3.6无名命名空间
如果一些没有定义在任何命名空间中,则这些数据会被自动定义在无名命名空间
访问数据方式 ::数据名;
namespace {
}
四,c++中的结构体联合枚举
4.1 结构体
定义的语法完全和c相同
不同点:
在表达类型的时候 可以省略struct 关键字
结构体中 可以定义函数
没有定义任何成员的结构体在c++中大小是1
c语言中大小是0
4.2 联合体(多个变量共享一份内存)
定义的语法完全和c相同
不同点:
在表达类型时
可以省略union 关键字
c++中支持匿名联合
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
4.3 枚举
定义的语法完全和c相同
不同点
表达类型时 可以省略enum关键字
枚举的本质 是一个小范围的整数 所以枚举变量的值可以赋值给整数变量 但在c++中 不能把整数变量的值 赋值给枚举变量 这里体现了c++对类型检查的严格
五,c++中的bool类型
c++ 本身就直接支持bool 类型 而c语言使用bool
类型需要导入一个头文件#include<stdbool.h>
bool类型的值 只有true 和false
但bool类型的变量可以赋任何类型的值 只有四个代表假其他都是真 false 0 NULL '\0'
当输出bool类型数据时 默认把它作为整数处理 真就是1 假就是0
六,c++中的符号替换
&& and
|| or
& bitand
# %:
{ <%
七, c++ 中的函数和c函数的不同
7.1 c++中的函数 无参参数列表严格匹配
无参代表没有任何参数 void 型参数依然可用
void testa(void);
7.2 不再支持 c中的隐式申明,函数调用之前要么进行前置定义要么进行前置声明
7.3 函数的返回值类型不能省略 不支持c中默认int 类型的机制。main函数除外。
八,函数重载 overload
8,1概念
在同一个作用域中 函数名相同 参数列表不同的函数允许的这叫函数重载
参数列表不同:
参数的类型不同 参数的个数不同
参数的顺序不同
8.2 举例
8.3 定义一个函数指针 使用函数指针调用上面例子中的第二个函数。
0 0
- day01
- day01
- DAY01
- DAY01
- day01
- Day01
- day01
- day01
- day01
- day01
- day01
- day01
- day01
- day01
- day01
- day01
- Day01:
- day01
- 爱加密加密Android apk 使用步骤
- atom
- dos 命令——切换盘符与切换工作目录
- 【框架-MFC】MFC 获取Windows特殊路径
- 视频显示
- day01
- 145.Binary Tree Postorder Traversal (二叉树后序遍历)
- Core Animation - 9
- Android ORM 框架之 ActiveAndroid
- hdu1059 Dividing(完全背包)
- NSAssert NSCAssert NSParameterAssert
- poj-2632 Crashing Robots
- 使用TextureView setTransform(Matrix)方法,解决Camera显示变形问题
- Andriod Thread状态