第一门面向对象的语言是 Simula67
C语言是1972年
stl = Standard Template Library标准模板库
c89 有32个关键字
c99 有37个关键字
c++98有64个关键字
namespace N1
{
}
namespace N1
{
namespace N2
{
}
}
namespace N1
{
int a;
}
namespace N1
{
int b;
}
int a = 10;
int main ()
{
int a = 30;
printf("%d\n",a);
return 0;
}
1.直接访问N1::a;
2.但是使用方法1的话频繁使用比较麻烦,using N1::a,将命名空间中的变量导出,相当于当前工程中的全局变量,
但是当全局变量中已存在a这个变量,所以就会产生冲突,优点是方便,缺点就是容易产生冲突
3.如果命名空间中的全部成员在当前文件中用的比较多,可以直接using namespace N1;这样的话N1中的全部成员都
成为了文件的全局变量
printf不会进行类型检查,坑比较多,所以在c++中不再使用printf而是使用cout,并且不用记忆太多的类型,
比如%d,%f,%ld之类的,
1.缺省参数:声明或者定义函数的时候为函数指定一个参数,在传参的时候不传递参数的话,就是用指定的参数
2.缺省参数不能在声明和定义的位置同时给出,最好在声明的时候给出,因为在声明和定义的时候,
很容易把默认参数值给的不同,为什么最好要在声明的位置给出比较好呢?因为,假如我们使用的是第三方库(静态库中都是二级制文件),
然后会给用户提供一个头文件,头文件中就包含静态库中函数的声明,要是用户使用的过程中不知道函数的声明是
什么样子,也就看不到函数是否带有缺省参数,就不知道这个函数应该怎么使用,所以我们一般把缺省参数给在声明的位置
3.全缺省参数:所有参数都带有默认值
4.半缺省参数:只有部分参数带有默认值,但是默认值给出的时候需要注意的就是默认值,只能从右往左给出,
意思就是右边没有左侧就不能能提供默认参数
5.缺省参数必须是常量或者全局变量,c语言不支持缺省参数