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 定义一个函数指针  使用函数指针调用上面例子中的第二个函数。
















































 































































































































































0 0
原创粉丝点击