c++命名空间namespace

命名空间namespace是用来组织和重用代码的编译单元,通过命名空间来避免冲突,解决重名现象

namespace mynamespace {

    // 命名空间中的代码块

}

命名空间属于作用域,作用域“{}”后边不需要加分号,比如struct是一个定义域,定义域“{}”后边需要加分号

命名空间的别名:

namespace n1 = mynamespace;

C++命名空间是一种将标识符封装在命名区域中的机制,以避免与其他标识符发生冲突,

以及提高代码的可读性和可维护性。命名空间可以定义在任何C++程序的范围内,

包括全局作用域、函数内、类定义内等等。

在命名空间中定义的变量、函数、类等的名字前需要加上命名空间的名称,

以隔离到其他命名空间的同名或全局作用域中的标识符。

// C++命名空间是一种将标识符封装在命名区域中的机制,以避免与其他标识符发生冲突,
// 以及提高代码的可读性和可维护性。
// 命名空间可以定义在任何C++程序的范围内,
// 包括全局作用域、函数内、类定义内等等。
// 在命名空间中定义的变量、函数、类等的名字前需要加上命名空间的名称,
// 以隔离到其他命名空间的同名或全局作用域中的标识符。
#include <iostream>

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

namespace otherCode {
    int add(int a, int b) {
        return a * b;
    }
}

int main()
{
    std::cout << myCode::add(4, 5) << std::endl;
    std::cout << otherCode::add(4, 5) << std::endl;
    return 0;
}

// 上述代码中,`mycode::add`和`otherCode::add`两个函数的名称相同,
// 但它们包含在不同的命名空间中,因此不会发生命名冲突。
// 另外,也可以使用`using namespace`指令来使用命名空间中的标识符
// 需要注意的是,过度使用命名空间可能会降低代码的可读性和可维护性,
// 因此应该合理使用命名空间,并始终使用唯一性的名称。
#if 0
#include <iostream>
using namespace std;
namespace mycode {
    int add(int a, int b) {
        return a + b;
    }
}
int main()
{
    cout << mycode::add(4, 5) << endl;
    return 0;
}
#endif

命名空间(namespace)和类(class)都是C++的重要特性,但二者的作用和用法各有不同。

命名空间是将一组标识符封装到一个逻辑组内的机制,它可以帮助我们防止不同代码段之间出现命名冲突,以达到目标代码间的无缝合作和互相协作。命名空间不是程序的一部分,它们通常定义在头文件中,有助于避免名称冲突。

类也是一种封装机制,用于将变量及函数一起封装成一个实体,其提供了数据抽象和封装的机制,实现了面向对象所倡导的 encapsulation、inheritance和polymorphism等重要特性。类定义是一个完整的代码段,包含类的成员变量和成员函数等。

二者的区别主要在于其作用和用法:

1. 命名空间主要用于封装标识和将其隔离开来,而类主要用于封装数据和方法,并以面向对象编程的方式来进行数据抽象和封装。

2. 命名空间可以在任何代码段中使用,不需要依赖其他的机制,而类必须定义在类的作用域内,而且必须依赖类的实例来进行访问。

3. 命名空间使用namespace关键字进行定义,类使用class关键字进行定义。

4. 在命名空间中,可以使用多个命名空间,以及在命名空间之外定义其他的函数、对象等,使得不同名称可以共存;而在类中,成员函数和成员变量均为类的成员,必须遵循类的规则和限制。

总之,虽然命名空间和类都是C++的重要特性,但这两者的作用和用法完全不同,各自具有其独特的特点和优势,开发者需要根据实际代码要求来选择使用适当的特性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值