1.C与C++的区别
C是弱类型,类型检查不明确
C++注重类型,强类型,严格检查类型。由于是面向对象。
C: int a = 5;
C++:int a(5);
宽字符
窄字符
::域控制符
命名空间:解决变量、函数、类重名的问题
没有命名的命名空间可以直接调用。
给命名空间可以起一个别名
namespace a=命名空间的名字
cout输出符号:根据类型泛型转换为字符串输出;
using namespace std 使用一个命名空间
using作用域:从using开始到代码结束,且必须在定义命名空间的下方,如果变量重名,会出现不明确错误,加上命名空间修饰符
命名空间用于迭代式开发
今天完成一点,明天完成一点
命名空间可以嵌套
命名空间如果在块语句内部,作用域是定义开始到块语句结束
命名空间全部是公有的
结构体内部默认公有,可以私有
类内部默认私有
私有实现了封装
2.左值和右值
左值:可以放在赋值号左边的值,必须要在内存有实体
右值:可以放在赋值号右边的值,可以在内存,也可以在CPU(寄存器)
左值引用:
int a=5;
int & ra(a);ra = a;(引用必须初始化)
ra = 3;
新建一个变量,接受实际参数的值
引用的本质:为对象建立别名(同一个地址),不可以出现重名,
引用可以改变指针的指向,并改变指向的值
类型 & 引用名 = 对象名;
类型 & 引用名(对象名);
指针引用:
int num1(5);
int num2(10);
int* pnum(&num1);
int* &ppnum=pnum;
一个&代表引用左值&&代表引用右值
右值引用:企业开发
改变外部变量,需要地址或者引用
只有左值引用是用指针实现的
int & ra = a;左值引用
int* && pa = &a;右值引用
C是弱类型,类型检查不明确
C++注重类型,强类型,严格检查类型。由于是面向对象。
C: int a = 5;
C++:int a(5);
宽字符
窄字符
::域控制符
命名空间:解决变量、函数、类重名的问题
没有命名的命名空间可以直接调用。
给命名空间可以起一个别名
namespace a=命名空间的名字
cout输出符号:根据类型泛型转换为字符串输出;
using namespace std 使用一个命名空间
using作用域:从using开始到代码结束,且必须在定义命名空间的下方,如果变量重名,会出现不明确错误,加上命名空间修饰符
命名空间用于迭代式开发
今天完成一点,明天完成一点
命名空间可以嵌套
命名空间如果在块语句内部,作用域是定义开始到块语句结束
命名空间全部是公有的
结构体内部默认公有,可以私有
类内部默认私有
私有实现了封装
2.左值和右值
左值:可以放在赋值号左边的值,必须要在内存有实体
右值:可以放在赋值号右边的值,可以在内存,也可以在CPU(寄存器)
左值引用:
int a=5;
int & ra(a);ra = a;(引用必须初始化)
ra = 3;
新建一个变量,接受实际参数的值
引用的本质:为对象建立别名(同一个地址),不可以出现重名,
引用可以改变指针的指向,并改变指向的值
类型 & 引用名 = 对象名;
类型 & 引用名(对象名);
指针引用:
int num1(5);
int num2(10);
int* pnum(&num1);
int* &ppnum=pnum;
一个&代表引用左值&&代表引用右值
右值引用:企业开发
改变外部变量,需要地址或者引用
只有左值引用是用指针实现的
int & ra = a;左值引用
int* && pa = &a;右值引用