(1)命名空间。
使用命名空间时候,using A::a(A为一个命名空间),那么它的优先级比using namespace std高,也就是说如果std里面也有定义a,由于A::a的优先级更高,因此当之后函数调用a,就是使用了A命名空间中的a。
- const在c++中的使用
- 函数与占位符
如果函数写好了后,还是想为以后可能的参数做准备,可以用函数占位符先占住,如下图:
- 引用
1.
对于结构体Test,我们可以把&a理解为一个常指针,所以它占用四个字节。
2.用引用实现内存的分配
MemInit函数用*&p去接收,那么修改了p,就相当于修改了ptr的内容。
如果只是用*p的话,那么*p指向ptr,因此只修改p是达不到修改ptr内容的目的的。
3.
对于一个常数,是不可以直接用int &b = 1去直接指向的,但是可以用const int &b = 1去实现。由上例可以看出,如果用const int的c去指向a,那么a改变了c就跟着改变,但是c由于自己是const类型的,所以不可以改变。
- 课堂笔记:
1.三目运算符a>b?a:b(其中a = 1, b = 2),在C语言中不可以作为左值,因为在C语言中三目运算符返回的是一个值2;但是在c++中它就可以被赋值,因为三目运算符返回的是变量b。
2.C语言中,对于函数print(),在main函数中调用之,可以采用print(1, 2, 3, 4),只是没有人接收,但是在语法中是可行的,所以从这个层面上来看,print()和print(void)是有一些细微的区别的;但是在c++中,这样操作是不合法的,print()等价于print(void)。