C++其实就是在c的基础之上增加了很多新的特性,也就是说c++其实是完全兼容c的,不过不同的是c语言是面向过程的,而c++是面向过程+面向对象的,也就是c++的面向过程是为了实现面向对象。
面向过程设计: 程序 = 数据结构 + 算法 面向对象设计: 对象 = 数据结构 + 算法 程序 = (对象 + 对象 + ... ) + 对象间通讯机制 C和C++的编程步骤是一致,都是经过 编辑源码 、编译过程 、 预处理 、编译 、汇编 、链接。 2.命名空间在编写代码的时候,在同一个作用域内,如果出现相同的变量名、函数名等等,c语言会报错,这是因为出现了命名冲突。C++由此提出了命名空间的概念,就是给函数名、变量名等加一层作用域的限制,以此来解决命名冲突的问题。
Namespace 命名空间名
{
变量;
函数;
类型名;
。。。。
};
其访问方式有两种:
- 作用域( :: )
- Using namespace 命名空间名;
C++已经定义好了标准输入流和标准输出流的对象,cin和cout,在iostream头文件中的std的命名空间中定义的。
#include
Using namesapce std;
Cin >> a; //输入
Cout << a; //输出
4.引用
引用就是变量的别名, *** 作引用就是在 *** 作变量本身。与指针不同的是指针要开辟空间,它存放的是变量的地址,访问变量属于间接访问,引用不开辟空间,是变量的别名,是直接访问。
//数据类型 &引用名 = 变量名;
Int a;
Int &b = a;
Int &c = a;
Int &d = b;
//常引用
const int &a =100;
//相当于#define a 100
- 引用不会产生新的空间
- 引用必须初始化
- 一个变量可以有多个引用,引用也可以有引用
函数重载指的是函数功能类似,函数名相同,参数不同(参数的个数、类型),与返回值无关的一类函数。函数重载是因为函数的本质就是一段连续空间的二进制代码,在运行时,存在内存中,函数名就是这段二进制代码的首地址,所以不同的二进制代码首地址是不一样的,也就是函数名必须不一样,但在c++中是允许函数名一样的,这是因为在编译时只要出现函数名,编译器都会对其按照参数进行重命名,所以本质上函数名是不一样的。
void test(int , int )
{
...
}
void test(int *, int *)
{
...
}
void test(char *, double *)
{
...
}
6.默认参数
默认参数中参数指的就是形参,而在定义函数时参数有默认值就叫默认参数。需要注意的是在使用默认参数的时候必须保证参数的连续性。
int test(int a, int b, int c = 1, int d = 2, int e = 3)//默认参数必须连续
{
return a + b + c + d + e;
}
OK,结束了忙碌的一天,晚安玛卡巴卡!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)