博客
关于我
C++基础知识(命名空间、输入&输出、缺省函数、函数重载)
阅读量:623 次
发布时间:2019-03-13

本文共 2144 字,大约阅读时间需要 7 分钟。

C++编程入门:命名空间、输入输出与函数特性

命名空间

为什么使用命名空间

在C++中,变量、函数和类的名称都存在于全局作用域中,这可能导致名称冲突。为了避免这种情况,命名空间提供了本地化的标识符命名空间。通过使用namespace关键字,可以将相关的代码组织在一起,减少全局名称冲突。

命名空间定义

定义命名空间使用namespace关键字,后面跟命名空间名称,后面跟一对大括号{}即可。命名空间内可以包含变量、函数、子命名空间等成员。

示例代码:

namespace cpp {    int a = 3;    int b = 5; // 全局变量,放到命名空间域中}

命名空间使用

1. 使用命名空间名称及作用域限定符

在需要时,使用命名空间名称和作用域限定符来访问命名空间中的成员。

示例代码:

cout << cpp::a << endl;cout << cpp::add(1, 2, 3) << endl;

2. 使用using将命名空间成员引入

使用using声明语句将命名空间中的成员引入当前作用域,简化代码书写。

示例代码:

using cpp::a;using cpp::add;int main() {    cout << a << endl;    cout << add(1, 2, 3) << endl;    return 0;}

3. 使用using namespace引入整个命名空间

为了方便,可以使用using namespace声明语句直接引入命名空间中的所有成员。

示例代码:

using namespace cpp;int main() {    cout << a << endl;    cout << add(1, 2, 3) << endl;    return 0;}

输入输出

使用cout和cin

在C++中,标准输入和输出的处理需要包含<iostream>头文件,并使用std命名空间。

示例代码:

#include 
using namespace std;int main() { int a = 1; double b = 2.333; char c = 56; cout << a << endl; cout << b << endl; cout << c << endl; // 输出ASCII码为56的字符 return 0;}

输入输出特点

  • coutcin提供了方便的接口,支持直接输出和输入操作。
  • 不需要像其他语言那样使用特定的格式控制符。

缺省函数

缺省参数概念

缺省参数是指在函数定义或声明时为参数指定默认值。当调用函数时,如果某个参数没有提供实参,则使用默认值。

示例代码:

void Func(int a = 11, int b = 22, int c = 33) {    cout << "a=" << a << " ";    cout << "b=" << b << " ";    cout << "c=" << c << " ";    cout << endl;}int main() {    Func(1, 2, 3);    Func(1, 2);    Func(1);    return 0;}

缺省函数分类

1. 全缺省函数

所有参数都有缺省值。

示例代码:

void Func(int a = 11, int b = 22, int c = 33) {    cout << "a=" << a << " ";    cout << "b=" << b << " ";    cout << "c=" << c << " ";    cout << endl;}

2. 半缺省函数

部分参数有缺省值,其他参数没有。

示例代码:

void Func(int a, int b = 22, int c = 33) {    cout << "a=" << a << " ";    cout << "b=" << b << " ";    cout << "c=" << c << " ";    cout << endl;}

缺省函数注意事项

  • 半缺省参数必须从右到左依次给出。
  • 缺省参数不能在函数声明和定义中同时出现。
  • 缺省值必须是全局变量或者常量。
  • 函数重载

    函数重载定义

    C++允许在同一作用域中定义多个具有相同名称但不同参数类型或个数的函数。这种机制常用于处理不同数据类型的相同操作。

    示例代码:

    int add(int a, int b, int c) {    return a + b + c;}double add(double a, double b, double c) {    return a + b + c;}int main() {    cout << add(1, 2, 3) << endl;    cout << add(1.1, 2.2, 3.3) << endl;    return 0;}

    通过函数重载,可以实现对不同数据类型的统一处理,提升代码的灵活性和可维护性。

    转载地址:http://umzaz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BF算法 (附完整源码)
    查看>>
    Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
    查看>>
    Objective-C实现binomial coefficient二项式系数算法(附完整源码)
    查看>>
    Objective-C实现bogo sort排序算法(附完整源码)
    查看>>
    Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现cartesianProduct笛卡尔乘积算法(附完整源码)
    查看>>
    Objective-C实现check strong password检查密码强度算法(附完整源码)
    查看>>
    Objective-C实现circle sort圆形排序算法(附完整源码)
    查看>>
    Objective-C实现coulombs law库仑定律算法(附完整源码)
    查看>>
    Objective-C实现DBSCAN聚类算法(附完整源码)
    查看>>
    Objective-C实现dijkstra银行家算法(附完整源码)
    查看>>
    Objective-C实现Dinic算法(附完整源码)
    查看>>
    Objective-C实现disjoint set不相交集算法(附完整源码)
    查看>>
    Objective-C实现DisjointSet并查集的算法(附完整源码)
    查看>>
    Objective-C实现djb2哈希算法(附完整源码)
    查看>>
    Objective-C实现DNF排序算法(附完整源码)
    查看>>
    Objective-C实现double factorial iterative双阶乘迭代算法(附完整源码)
    查看>>
    Objective-C实现double factorial recursive双阶乘递归算法(附完整源码)
    查看>>
    Objective-C实现double hash双哈希算法(附完整源码)
    查看>>