命名空间,标准输入输出,函数重载

本文深入探讨了C++中的命名空间概念,包括其定义、使用方式及默认命名空间的引用。同时,详细讲解了标准输入输出的特性,如cout与cin的使用,以及与C语言的不同之处。此外,还介绍了几个C++特有的知识点,如寄存器变量的特殊处理、结构体的直接定义、bool类型的使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.命名空间
(1).命名空间的定义:定义一块命名空间,名字叫 NameA

namespace NameA
{
    // 原来全局空间可以做的事情,命名空间都可以做:定义变量、函数、宏、结构体、枚举....
    int g_a;

    int g_b;

    int add(int a, int b)
    {
        return a+b;
    }

    namespace AA {

        int g_c;
    }
}

原来全局空间可以做的事情,命名空间都可以做:定义变量、函数、宏、结构体、枚举…

(2).命名空间的使用
1、通过命名空间名字和 域解析符(::) 引用空间中的成员

 NameA::g_a = 10;
    printf ("1+2 = %d\n", NameA::add(1,2));

2、通过 using 声明来使用整个命名空间
using 声明只在当前作用域有效

using namespace NameA;   // 开启命名空间NameA,之后使用NameA中的成员不用再加域解析符

3、通过 using 声明来使用命名空间中的某个成员

using NameA::add;   // 之后使用 NameA 的add 不需要再加域解析符
    printf ("1+2 = %d\n", add(1,2)); // 使用的是 NameA 的add

4、默认命名空间使用
默认命名空间成员直接用域解析符 :: 来引用

  using namespace NameA;
    NameA::g_b = 10;

    // 默认命名空间成员直接用域解析符  ::  来引用
    ::g_b = 20;

    NameA::AA::g_c = 10;

二.标准输入输出

1.标准输出 :cout

cout 类似于 printf, 作用是往屏幕打印数据
区别:cout 是个变量 printf 是个函数
<< : 左移操作符 和 cout 结合后功能变了,可以理解为数据流向
数据从右边流向左边
右边是 字符串 左边是屏幕 ==> 字符串 --> 屏幕
endl 是一个换行
C中的转义字符在C++同样可以使用
cout 支持链式操作,数据流遵循先来后到的原则
cout 可以自动识别变基础量类型

2.标准输入:cin

cout << “请输入一个整数:”;
cin >> a; // scanf ("%d", &a);
cout << a << endl;

注意:cin cout 必须放到一行的最左边
"hello" >> cout;  错误

三.几个新增的知识点

1.如果对一个寄存器变量进行 & 操作
则变量将不在是一个寄存器变量,而是普通变量

2.C++ 认为结构体是一个新的类型,所以可以直接定义变量

3.新增的bool 类型:只有两个值 true 和 false
true(真) 的值是1 false(假) 的值是0
0 是假, 非 0都是真

4.bool类型和float类型与 0 进行比较

int main()
{
    bool b = true;

    if (b) // 判断真
    {

    }

    if(!b) // 判断假
    {

    }

    // 浮点型数据和 0 比较需要精度
    float a = 0.00000001;
    if (a>-0.000001 && a < 0.000001)
    {

    }

    return 0;
}

5.三目运算符可以作为左值来使用

C++中三目运算符返回的是变量的空间
三目运算符作为左值使用的时候结果中不能存在常量
(a>b ? a : 20) = 100;是不允许的

四.函数的默认参数

1、函数的默认参数:
允许形参带一个默认的值,当函数调用的时候没给形参传值,使用默认的值

注意
1)、如果函数有一个参数有默认值,则该参数右边的所有参数都要有默认值
2)、给形参设置默认值的时候,函数声明和函数定义不能同时赋值

2、 函数占位参数:形参只有类型,没有变量名

占位参数可以和默认参数一起使用

五.函数重载

函数重载:同一个函数名,可以有多个不同的实现

函数重载的规则:
1、参数个数不同
2、参数类型不同

注意
返回值不能作为重载的判定条件
函数指针:用重载函数给函数指针赋值的时候,要匹配函数指针的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值