1.C和C++是两门编程语言
C++完全兼容C
C++ == C + 面向对象 + C++标准库
2.输入输出 和 动态内存分配
C++中可以直接使用C的输入输出和动态内存分配
C++中也有它自己的输入输出和动态内存分配
例如:c的动态内存分配
int *p=(int*)malloc(4);
*p=4;
printf("p:%d",*p);
free(p);
c++的动态内存分配
int pp=new int;
*pp=8;
coout<<*pp<<endl;
delete p;
3. C++的头文件和C的不一样
C++的头文件 #include 的时候 不要.h iostream.h 就是直接#include <iostream>
C++中使用C的头文件:
方式1 有.h 例如 #include <stdio.h>
方式2 没有.h 例如 #include <cstdio>
4.名字空间
C++标准自带的名字空间 std
使用方式一: 临时使用名字空间中的标识符
名字空间名::成员
std::cout
使用方式二: 暴露名字空间中一个标识符
using 名字空间名::成员;
(建议在大型项目时使用方式一和方式二)
using std::endl;
使用方式三:直接暴露整个名字空间 名字空间中的所有标识符都暴露了
using namespace 名字空间名;
using namespace std;
制作名字空间
namespace 名字空间名{
标识符声明
};
namespace name1{
int n;
char name[20];
struct Student{
char name[20];
int age;
double score;
};
};
调用name的n
name::n;
5. 函数重载:
函数名相同,参数列表不同,函数不同
参数列表不同:
1. 参数个数不同
2. 参数类型不同
3. 参数顺序不同
//参数顺序的例子
void f1(int a, char c){ cout << "f1" << endl; }
void f1(char c, int a){ cout << "f2" << endl; }
6. 函数的缺省参数
在声明的时候给形参赋值
注意:
1. 声明的时候写 = 值 定义的时候不要写
(在调用的时候如果不写默认给你传)
2. 带缺省值的形参 从右往左
3. 注意函数重载时候的二义性问题(看实参)
见代码
例子:
void print(int *arr,int len);
void print(int *arr);
void print(arr);(具有二义性不能调用)
7. C中没有bool类型
C++中有bool类型
bool在C中是个标识符
bool在C++中是个关键字