C++命名空间namspace解析——“cout”未声明的标识符,“cin”未声明的标识符

首先我们先看一下下面这段代码运行时的情况(注意按ctrl+F5 运行)

#include<iostream>
int main()
{

	return 0;
}

运行结果如下
是一个没有任何结果的窗口
在这里插入图片描述

现在我们再加上一段输出代码

cout<<"hello"<<endl;

会发现编译运行时出现了错误,显示wei3声明的标识符其实就是少了工作空间 std的引入
如果引入工作空间 就不会出现下面错误

using namespace std;

在这里插入图片描述

在C++中可以引入已经定义好了的工作空间,同时也可以自己定义工作空间。上面的代码是等同于下面这段代码的

#include<iostream>
int main()
{
	std::cout<<"hello"<<std::endl;
	return 0;
}

运行出来的结果完全一样,也就是说在整个程序前面引入这个std工作空间,就可以节省繁琐的“std::”,这样便于程序员编写代码。

比如我现在自定义两个命名空间A和B
然后分别对其进行相应的输出
代码如下

#include<iostream>
using namespace std;
namespace A{
	int x=1;
	void f(){
		cout<<"A"<<endl;
	}
}
namespace B{
	int x=2;
	void f(){
		cout<<"B"<<endl;
	}
}
int main()
{
	cout<<A::x<<endl;
	B::f();
	return 0;
}

输出结果为
1
B

另外给出一个实例供参考

namespace实例
#include <iostream>
#include <stdlib.h>
using namespace std;
namespace   sp            //填写命名空间的关键字
{
    int x = 105;
}
int main()
{
    // 使用bool类型定义isOdd,作为状态位
        bool isOdd ;       
	
	if(sp::x % 2 == 0)
	{
		//改变状态位的值,使其为false
        isOdd=false;
	}
	else
	{
	    //改变状态位的值,使其为true
        isOdd = true;
	}
    // 判断状态位的值
	if(isOdd==true)
	{
		// 如果状态位的值为true,则打印变量x是奇数
        cout<<"变量x是奇数"<<endl;
	}
	else
	{
        // 如果状态位的值为false,则打印变量x是偶数
        cout<<"变量x是偶数"<<endl;
		
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41518597/article/details/84106730
今日推荐