标准C++(1)
一、引用
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
例: int& num;
引用类似于起别名
注意:
(1)&在此不是求地址运算,而是起标识作用。
(2)类型标识符是指目标变量的类型。
(3)声明引用时,必须同时对其进行初始化。
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
(5)引用也可以当作函数的返回值,但绝不能返回一个局部变量的引用。
(6)引用可以当作函数的参数,它引用的对象就是函数的实参。引用可以达到指针的效果。
(7)引用不光可以引用标识符,也可以引用立即数,但必须加const属性
(8)不能用 返回值不是引用的函数的返回值给引用初始化
二、C++的内存管理运算符
在C++中使用 new/delete 来管理内存,new 用来申请内存,delete 用来释放内存。
具体用法如下:
#incldue <iostream>
class Student
{
char name[];
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[]{,,,,,,,,,};
delete[] stu;
三、C++的函数
C++中函数可以在main函数前执行
C++具有函数重载的功能
可以使用同一个函数名,定义多个参数不同(返回值可以不同,前提是参数不同)的函数。
C++中函数的参数可以有默认值,
1、函数的默认参数必须靠右。
2、默认参数要尽量少用,因为可能会引起重载错误
3、默认参数是编译器在编译时帮助赋值的,所以只能由全局变量、静态变量、字面值对参数进行赋值。
int func(int num1= ,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、全局空间归属为匿名空间
在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放。
如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符来表示他 ::变量名
最新文章
- node03-events
- Unity Standard Assets 简介之 Cameras
- 无锁数据结构(Lock-Free Data Structures)
- Azure Remote Desktop: ";An error occurred while loading from file *.rdp";
- tomcat异常: Cannot get a connection, pool exhausted
- reactjs入门到实战(九)----ajax的应用
- js冲突
- 【HDOJ】2809 God of War
- 使用Oracle 9i工具管理数据库 - 初学者系列 - 学习者系列文章
- BZOJ-1012-[JSOI2008]最大数maxnumber(线段树)
- WPF介绍
- Docke--Dockerfile指令介绍
- MySQL源码包编译安装
- JS监听滚动条进度
- C# IO流的操作(二)
- Python中操作Redis
- MyBatis下MySqL用户口令不能为空
- Consul之:key/value存储
- 【Windows编程】大量病毒分析报告辅助工具编写
- css抠图之background-position-背景定位