学习C++笔记367

简介: C++ 命名空间

补充关于 using 的错误事例:

#include

usingnamespace std;

namespace A

{

   int a =100;

   int fun()

   {

       cout<<"a = "<<a<<endl;

   }


   namespace B            //嵌套一个命名空间B

   {

       int a =20;

       int fun()

       {

            cout<<"a = "<<a<<endl;

       }


   }

}



int main(int argc,char*argv[])

{

   cout<<a<<endl;

   fun();


   return0;

}

这样会出错:会显示 a 变量和 fun 函数 “was not declared in this scope”,即找不到这个 a 和 fun 函数。

解决办法: 用 using 来告诉编译器用到的是哪个命名空间内的内容。在 main() 上面加 using namespace A; 或者 using namespace A::B; 。这样就可以使用其中的 a 和 fun()。但是不能同时使用,因为这样也会导致编译出错,编译器器不知道要去使用哪个 a 和 fun()。

目录
相关文章
|
1天前
|
存储 自然语言处理 编译器
|
1天前
|
存储 程序员 编译器
|
1天前
|
Java C++ iOS开发
|
1天前
|
存储 编译器 文件存储
|
4天前
|
C++
【C++】日期类Date(详解)②
- `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`&gt;`, `==`, `&lt;`, `&lt;=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
|
7天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
10 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
2天前
|
编译器 C语言 C++