文章目录
一、C++初识
1.Hello World
#include <iostream> //标准输入输出流 i-in输入 o-out输出
using namespace std;//使用命名空间 std 打开一个叫std房间
//函数入口地址
int main()
{
// cout 标准的输出
// << 左移运算符
// endl 结束换行
cout << “Hello World” << endl;
system(“pause”);//阻塞功能
retrun 0;//返回正常退出
}
2.头文件
#include <math.h> //c风格头文件 c++完全兼容
#include <cmath> //c++风格头文件
#include <time.h> //c风格头文件
#include <ctime> //c++风格头文件 c++完全兼容
二、C++对C的扩展
C4996错误
添加下面的宏定义
#define CRT SECURE ND NARVINGS
1. 双冒号作用域运算符
全局作用域 直接加 ::
2. namespace 命名空间
用途 解决名称冲突问题
必须在全局作用域下声明
命名空间下可以放入 函数、变量、结构体、类…
命名空间可以嵌套命名空间
命名空间是开放的,可以随时加入新的成员
匿名命名空间 static
可以起别名
3. using声明和using编译指令
using LOL:: sunwukongID;
如果局部范围内还有 sunwukongID,会出现二义性问题,要注意避免
编译指令
using namespace LOL
如果局部范围内还有 sunwukongID ,使用局部的ID
如果打开多个房间,那么也要注意二义性问题
4.C++对C语言增强
-
全局变量增强检测
-
函数检测增强
- 函数类型检测
- 返回值检测
- 传参个数检测
-
类型转换检测增强
malloc返回void* ,C中可以不用强转,C++必须强转
//在C中不用强转
void test()
{
char *p = malloc(sizeof(64)); //malloc返回值是void*
}
//在C++中必须强转
void test()
{
char *p = (char*)malloc(sizeof(64)); //强制将malloc返回值转换为char*
}
-
struct增强
- C中不许有函数 C++可以有
- 使用C必须加关键字 stru