首页 > 编程语言 >C++中namespace的用法

C++中namespace的用法

时间:2024-09-02 16:21:14浏览次数:6  
标签:cout int void namespace C++ 用法 test include

我们在现实的项目开发中一般会有着大量的代码,而且代码都是多人编写的,也许一个项目会有10个功能,每一个人都要完成一个功能。但是敲过代码的都知道,一般在编写程序的时候如果多人没有实现约定去完成,那就会出现代码冲突的情况,那么,为了解决这样的冲突,我们C++中使用了命名空间

namespace用法

我们上个代码演示一下:

#include <iostream>
#include<test.h>

using namespace std;


namespace A{
 int x= 10;
 void fun1(){
cout<<"this is namespace A"<<endl;
}
}

int main()
{
    cout << A::x <<endl;
    A::fun1();

    return 0;
}

namespace嵌套用法

#include <iostream>
#include<test.h>

using namespace std;

namespace a {
namespace b {
int a = 10;
}
}

int main()
{

    cout << a::b::a << endl;

    return 0;
}

分文件命名空间

当然,在项目过于庞大的时候如果我们写的命名空间太多的话,就会和老太太的裹脚布一样,又臭又长!!!!所以我们可以新建两个文件test.h和test.cpp我们在.h中定义,在.cpp中使用。

test.h:

#ifndef TEST_H//防止被多包含
#define TEST_H
//声名一个命名空间
namespace myspace {
    //声名函数
void func1();
void func2(int x);
}

namespace student_info_guanli {
void fun1();
void fun2();
}

#endif // TEST_H

test.cpp:

#include"test.h"
#include"iostream"
using namespace std;
//实现myspace
void myspace::func1(){
    cout << "this is func1"<<endl;

}

void myspace::func2(int x){

    cout << "func" << x << endl;
}

namespace   S_I_G = student_info_guanli;

void S_I_G::fun1(){
    cout << "this is S_I_G's new namespace"<<endl;
}

void S_I_G::fun2(){
    cout << " this is student_info_gunali new namespace" <<endl;
}

main.cpp

#include <iostream>
#include<test.h>

using namespace std;

namespace a {
namespace b {
int a = 10;
}
}

int main()
{
    myspace::func1();
    myspace::func2(100);
    cout << a::b::a << endl;

    student_info_guanli::fun1();
    student_info_guanli::fun2();
    return 0;
}

命名空间的简写:

在我们的项目中一般我们起的命名空间的名字会很长(为了让别人看懂)我们一般会设置的比较长且全面一点比如:student_info_guanli;但是我就是挺随意,就是s_i_g,我可以看懂,但是别人看不懂,所以我们可以起个别名。

namespace   S_I_G = student_info_guanli;

void S_I_G::fun1(){
    cout << "this is S_I_G's new namespace"<<endl;
}

void S_I_G::fun2(){
    cout << " this is student_info_gunali new namespace" <<endl;
}

我们可以在.cpp文件中调用的时候写成别名,然后再main中使用的时候还是使用全名哦!!

好嘞!下课!!!

标签:cout,int,void,namespace,C++,用法,test,include
From: https://blog.csdn.net/weixin_70293633/article/details/141820262

相关文章

  • 多重背包问题 模板 C++实现
    问题:有n 种物品和一个容量是c 的背包。第i种物品最多有num[i-1] 件,每件体积是weight[i-1],价值是value[i-1]。求解将哪些物品装入背包,可使物品重量总和不超过背包容量,且价值总和最大。输出最大价值。算法1:三重循环内层循环用于考虑当前物品i可......
  • 2024年华为OD机试E卷- Boss的收入-(Java&c++&Python)
    题目描述:一个XX产品行销总公司,只有一个b0ss,其有若千一级分销,一级分销又有若干二级分销,每个分错只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自已的+下级上交的)每满100元上交15元给自己的上级现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss......
  • C++中不定参数函数的实现方法
    目录一.前言二.代码解析1.模板方式第一种写法第二种写法2.va_list方式三.其他一.前言C++中实现不定参数函数可以采用多种方法,这篇文章讨论不定参数模板和va_list。二.代码解析1.模板方式C++中采用模板来实现不定参数列表,可以有多种编码的方法,这里提供两种方法。......
  • c++ string 与 wstring 互转
    string转wstring:#include<iostream>#include<sstream>#include<locale>#include<string>#include<codecvt>intmain(){std::stringutf8_str="你好,世界!";std::wstring_convert<std::codecvt_utf8<wc......
  • 【C++】C++STL 揭秘:Strng背后的底层逻辑
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇在上篇介绍string类的使用与理解,本篇将为大家来带关于string的底层实现逻辑,当然这不是一定库里面的实现逻辑。我们设计一个string类是为了在使用string类相关......
  • 命名空间在 C++ 中如何组织和管理代码?,c++中的命名空间是什么意思
    在C++编程中,命名空间(namespace)是组织和管理代码的重要工具。它为程序员提供了一种将代码按逻辑分组的方法,避免名称冲突,特别是在大型项目或使用多个库时显得尤为重要。命名空间可以看作是一个作用域,它包含了标识符(如变量、函数、类等)的集合。当我们在不同的模块中使用相同的标识符......
  • 【编程规范具体案例(基于Qt、微软、谷歌和AUTOSAR C++14 参考)】 C++ 编码规范 之程序设
    目录标题基本元素3.1类和结构体3.1.1\[必须]使用恰当的访问修饰符来管理类成员的可见性3.1.2\[必须]在类中合理使用默认的特殊成员函数3.1.3\[必须]提供清晰且尽可能一致的类接口3.1.4\[建议]优先使用初始化列表来初始化类成员3.1.5\[建议]使用抽......
  • 第3章_auto占位符(C++11~C++17)
    第3章auto占位符(C++11~C++17)3.1重新定义的auto关键字在C++11中静态成员变量是可以用auto声明并且初始化的,不过前提是auto必须使用const限定符。staticconstautox=5;遗憾的是,const限定符会导致x常量化,显然这不是我们想要的结果。在C++17标准中,对于静态成员变量,auto可以......
  • 第5章 函数返回类型后置(C++11)
    第5章函数返回类型后置(C++11)5.1使用函数返回类型后置声明函数语法:auto是一个占位符,int才是真正的返回类型autofoo()->int{return42;}返回一个函数指针类型,返回类型后置可能会是一个不错的选择intbar_impl(intx){returnx;}typedefint(*bar)(int);bar......
  • 第4章 decltype说明符(C++11~C++17)
    第4章decltype说明符(C++11~C++17)4.1回顾typeof和typeid(1)在C++11标准发布以前,GCC的扩展提供了一个名为typeof的运算符。通过该运算符可以获取操作数的具体类型。typeof是GCC所提供,并非C++标准。inta=9;typeof(a)b=5;(2)C++标准还提供了一个typeid运算符来获取与目标操......