草履虫也能懂得C++命名空间namespace解析(新手向)

一 . 命名空间

1.namespace的价值

在c++更深入的学习中,我们会遇到更多的函数,变量,和类(类
之后讲),而这些大量存在于全局作用域中,c语言会容易发生命
名冲突的问题,c++为了应对这种问题,提出了命名空间
namespace的概念。
int rand = 0;
int main()
{
    printf("%d",rand);//编译报错: error C2365 rand重
                      //定义
    return 0;
}

2.namespace的定义

1. 格式: 
 namespace name{
  中间可以定义函数,变量,或类
                 }
2.namespace本质是一个域,与全局域互相独立,因此解决了名字冲突问题。
3.namespace可以嵌套定义。
4.c++标准库定义在std的namespace中                  

3.namespace的使用

命名空间的使用有三种
1. 指定空间使用
2. 将某个成员展开使用,推荐项目中常用且没有命名冲突的变量。
3. 展开命名空间所有成员,项目中不推荐,日常练习中可以使用。
namespace test
{
    int a = 0;
    int b = 1;
}
int main()
{
    //指定命名空间
    printf("%d",test::a);
    //展开部分成员
    using test::a;
    printf("%d",test::a);
    //全展开
    using namespace test;
    printf("%d",test::a);
}

二. c++输入输出

<iostream>是input output stream 标准输入输出流。
cin可以理解为c语言的scanf,标准输入流。
cout可以理解为c语言的printf,标准输出流。	
std::endl是一个函数,相当于添加一个换行字符和一个刷新缓冲区。
<<流插入运算符,>>流提取运算符,c语言为左移和右移运算符。
<iostream>包含了scanf和printf。
cin和cout 自动识别数据的类型。

三. 缺省函数

1. 缺省函数的定义

缺省函数是声明函数参数指定的一个缺省值,例如Add(int a,int b = 1);1就是b的缺省值。

2. 缺省函数的性质

缺省函数必须从左向右进行缺省。
缺省函数传参必须从左向右。
函数声明定义时,缺省参数不能同时出现,只能在函数声明中出现。

四. 函数重载

函数重载是指同一作用域出现同名函数,这些函数名相同,参数不同的叫做函数重载,c语言不支
持函数重载,c++支持函数重载,这样c++的函数调用就体现出多态性。
    函数重载条件
    1. 函数参数不同。
    2. 函数参数个数不同。
    3. 函数参数顺序不同。

五. 引用

1. 引用的概念和定义

   引用是给变量取别名,并不开辟空间,就像孙悟空,孙行者,者行孙,都是指孙悟空

2. 引用的特性

   1. 引用必须初始化
   2. 引用初始化后不能改变
   3. 一个变量可以有多个引用

3. 引用的使用

   引用可以引用传参或着引用做返回值,可以减少拷贝,提高效率。

4. const引用

   使用引用时要注意权限可以缩⼩,但是不能放⼤。
例如
1. int& rb = a*3; 表达式的结果拷贝产生临时变量
2.double d = 12.34; 
3.int& rd = d;

5. 指针和引用的关系

1. 引用更安全,指针会出现野指针的情况。
2. sizeof含义不同,引用是引用对象大小,指针取决于计算机。
3. 引用直接访问对象,指针需要解引用。
4. 引用不开空间,指针要开空间。
5. 引用必须初始化,指针可以指向空对象。
6. 引用初始化引用了一个对象就不能在引用其他对象,指针可以。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值