标签:new 默认 using 参数 pre oid iostream 标识 标识符
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
例: int& num;
引用类似于起别名
注意:
(1)&在此不是求地址运算,而是起标识作用。
(2)类型标识符是指目标变量的类型。
(3)声明引用时,必须同时对其进行初始化。
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
(5)引用也可以当作函数的返回值,但绝不能返回一个局部变量的引用。
(6)引用可以当作函数的参数,它引用的对象就是函数的实参。引用可以达到指针的效果。
(7)引用不光可以引用标识符,也可以引用立即数,但必须加const属性
在C++中使用 new/delete 来管理内存,new 用来申请内存,delete 用来释放内存。
具体用法如下:
#incldue <iostream> class Student { char name[20]; char sex; short; }; int main() { Student *stu = new Student; delete stu; }
使用 new 创建结构对象时,会自动调用构造函数,delete 时会自动调用析构函数
【例】 Student* stu = new Student("hehe");
[]可以配合new和delete申请或释放数组。new[] 不可与delete混用,必须使用delete[]释放
int* p = new int[10]{1,2,3,4,5,6,7,8,9,10}; delete[] stu;
C++中函数可以在main函数前执行
C++具有函数重载的功能
可以使用同一个函数名,定义多个参数不同(返回值可以不同,前提是参数不同)的函数。
C++中函数的参数可以有默认值,
1、函数的默认参数必须靠右。
2、默认参数要尽量少用,因为可能会引起重载错误
3、默认参数是编译器在编译时帮助赋值的,所以只能由全局变量、静态变量、字面值对参数进行赋值。
int func(int num1= 100,char* name = "abcd") { } void func(char ch,short num) { }
C++引用了名字空间的机制。
名字空间:把全局的命名空间进一步分割。可以创建出一个个独立的命名空间防止相互之间命名冲突
1、名字空间的定义
namespace name { //变量; //函数; //结构、类; }
2、名字空间的合并
a、同名的命名空间会自动合并
b、在同一个名字空间中标识符必须是唯一的
3、定义与声明分开
namespace n1 { //在名字空间中声明函数 void func(void); } //在名字空间外定义函数 void n1::func(void) {}
4、如何使用名字空间中的内容
a、域限定符(::),直接使用,名字空间::标识符。【例】 ni::func();
b、using namespace 名字空间; 功能是把名字空间中的标识符
c、using 名字空间::标识符 ,表示此标识符对后面的代码公开。
5、名字空间的嵌套
名字空间可以嵌套,但使用时要逐层解析。 n1::n2::n3::num
namespace n1 { namespace n2 { namespace n3 { } } }
6、全局空间归属为匿名空间
在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放。
如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符来表示他 ::变量名
标签:new 默认 using 参数 pre oid iostream 标识 标识符
原文地址:https://www.cnblogs.com/unjack/p/9445418.html