今天你面向对象了吗?(C++初识)

命名空间:
1、如同局部作用域和全局作用域一样,都是一个作用域,解决命名冲突的问题。
2、命名空间可以嵌套定义也可以分块定义,编译器会将相同的命名空间进行合并。
这里介绍一下作用域限定符::(如果是全局的话就不用加)
命名空间 中成员的访问方式:
1、命名空间+作用域限定符::成员名字
2、using+命名空间+作用域限定符::成员(相当于把它展开成全局形式)
3、using+namespace+命名空间(容易造成命名冲突)
c++中的输入输出
所有c++的头文件都属于std这个命名空间
cout << a
c++中的输出是cout.“<<”表示的是一个流向关系,由变量输出到一个显示屏(终端)
cin >> a
c++中的输入是cin.“>>”表示的是一个流向关系,由键盘输入到变量当中
相对于c语言无需指定输入输出格式,并且可以连续输入输出
endl:换行
缺省参数
是一个“备胎”的作用。
定义参数的时候给一个默认值。如果后来给赋值了,就用赋值后的数值,如果没有就用默认值。
全缺省:所有性擦按都有缺省值
半缺省:部分形参有缺省值
void fun(int a,int b,int c = 3)
fun(1,2)至少传2个参数
缺省值要从右往左连续赋值,中间不能有间隔
缺省参数要么在声明要么在定义
缺省值必须是常量或全局变量
函数重载
函数名相同,参数不同,和返回值类型无关
参数不同(个数不同、类型不同、顺序不同)
关于c++能支持函数重载c语言不支持的问题?
由于函数名修饰规则:底层算法把函数名与参数 相结合,构造了了一个底层全局唯一的函数名
linux函数名修饰规则:_z+函数名字符 个数+函数名+参数类型首字母
z3dddii
c语言函数名修饰规则:
+函数名
所以c语言不 支持函数重载
预处理——》编译——》汇编——》链接
1、预处理:头文件展开,宏替换,条件编译,去注释 .i文件
2、编译:语法语义检查,转成汇编代码 .s文件
3、汇编:汇编代码转成机器码(可执行代码) .obj
4、链接:链接所有的机器码,生成一个可执行文件 .exe
extern "c"
一般用于混合编程

猜你喜欢

转载自blog.csdn.net/www_zxf_csdn123/article/details/89604662