C++入门笔记

1.命名空间(namespace)
定义命名空间:需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间。
命名空间中的函数可以是变量也可以是函数,可以嵌套,同一个工程中允许存在多个相同名称的命名空间,编译器后会合成同一个命名空间中。
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
命名空间的三种使用方式:1.加命名空间名称及作用域限定符 2.使用using将命名空间中成员引入 3.使用using namespace 命名空间名称引入(尽量不用,作用于全局变量,可能会造成命名冲突)
2.C++输入输出
使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空 间。

#include <iostream>
 using namespace std;
 
int main() {
 int a; double b; char c;
 
cin>>a; cin>>b>>c;
 
cout<<a<<endl; cout<<b<<"  "<<c<<endl;
 
return 0; }

3.缺省函数(备胎)
可分为全缺省和半缺省
概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默 认值,否则使用指定的实参。
全缺省:

void TestFunc(int a = 10, int b = 20, int c = 30) { 
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
 cout<<"c = "<<c<<endl;
  }

半缺省:

void TestFunc(int a, int b = 10, int c = 20) {
 cout<<"a = "<<a<<endl;
  cout<<"b = "<<b<<endl;
   cout<<"c = "<<c<<endl; 
   }

注意事项:

  1. 半缺省参数必须从右往左依次来给出,不能间隔着给
    1. 缺省参数不能在函数声明和定义中同时出现
      如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。
//a.h void TestFunc(int a = 10);声明
 
// a.c void TestFunc(int a = 20) 定义
  1. 函数重载
    函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题(只看参数)
    名字修饰(name Mangling):Name Mangling是一种在编译过程中,将函数、变量的名称重新改编的机制,简单来说就是编译器为了区分各 个函数,将函数通过某种算法,重新修饰为一个全局唯一的名称。
    预处理:头文件展开,宏替换,去注释,条件编译.i
    编译:语法语义检查,转成汇编代码.s
    汇编:汇编代码转成机器码.obj
    链接:链接所有的机器码,生成一个可执行文件.exe
    LINUX下函数名修饰规则:_Z+函数字符个数+函数名+类型首字符
    C++支持重载:函数名修饰规则(name mangling):底层通过算法把函数名与参数结合,构造了一个低层全局唯一的函数名
    extern “C”
    有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern “C”,意思是告诉编译器,将 该函数按照C语言规则来编译。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值