物联网-C++——2、冒号作用域、命名空间

news/2024/7/8 2:45:11

## ::

可以指定作用域
如下如果不加::会打印局部变量a,就近原则
冒号前为空表示全局作用域


#include <iostream>
using namespace std;

int a = 100;
void test() {

    int a = 10;
    cout << ::a << endl;
}
int main()
{

    test();
}

## namespace
1、可以存放变量、函数、类、结构体
2、命名空间可以重名和嵌套
3、必须定义在全局范围内
定义两个命名空间
使用前需加作用域

#include <iostream>
using namespace std;

namespace a{

	int i=100;
}
namespace  b{

	int i = 1000;
}

int main()
{
	cout << a::i << endl;

}

命名空间内函数声明及外部定义

#include <iostream>
using namespace std;

namespace a{

	void test();
}
void a::test() {

	cout << "hello" << endl;
}

int main()
{
	a::test();
}

无名命名空间
没有名字会在所有成员前添加static修饰
也就是所有成员都被声明为静态

#include <iostream>
using namespace std;

namespace {

	void test() {
		cout << "hello" << endl;
	}
}

int main()
{
	test();
}

命名空间取别名
给命名空间取一个别名

#include <iostream>
using namespace std;


namespace a{

	void test() {
		cout << "hello" << endl;
	}
}
namespace newa = a;

int main()
{
	newa::test();
	a::test();
}

using

指定使用命名空间

#include <iostream>
using namespace std;

namespace a{

	void test() {
		cout << "hello" << endl;
	}
}
namespace b {
	void test() {
		cout << "hello xingnian" << endl;
	}
}

namespace c{
	void test() {
		cout << "hello world" << endl;
	}
}

int main()
{
	using namespace b;
	test();
	
}

使用指定明明空间下的成员

#include <iostream>
using namespace std;

namespace a{

	void test() {
		cout << "hello" << endl;
	}
}
namespace b {
	void test() {
		cout << "hello xingnian" << endl;
	}
}

namespace c{
	void test() {
		cout << "hello world" << endl;
	}
}

int main()
{
	using c::test;
	test();
	
}


http://www.niftyadmin.cn/n/15341.html

相关文章

InnoDB_Buffer_Pool

说明 对于使用InnoDB存储引擎的表来说, 无论是用于存储用户数据的索引,还是系统数据,都是以页的形式存放在表空间(tablespace)中。所谓的表空间(tablespace),实际是InnoDB对一个或几个实际文件的抽象,最终还是存在磁盘上。当InnoDB处理客户端请求时,如果需要访问某个页的…

Vue 使用socket.io实现聊天室

使用socket.io实现聊天室的实时通信功能。 安装socket.io:npm install socket.io在后端服务器中引入socket.io并启动服务器:const app = require(express)() const server = require(http).Server

N子棋(外加双人对战)详解!推荐!!!

文章目录准备工作创建菜单进入游戏初始化棋盘、打印棋盘玩家下棋、电脑下棋、生成随机数判断输赢大家好&#xff01;时隔多天&#xff0c;我终于写博客了&#xff0c;真的是开心&#xff01;这一次带来的是N子棋有双人对战和单人下棋&#xff0c;请认真看下去&#xff0c;我会竭…

Vue | 有关Vue2路由知识点的一些总结,以及Vue3路由做出了哪些调整?

目录 Vue2: 1. 路由&#xff1a; 2. 路由规则&#xff1a; 3. 实现切换&#xff08;active-class可配置高亮样式&#xff09; 4. 指定展示位置 5. 路由的query参数 6. params传参&#xff1a; 7. 多级路由 8. 路由的props配置 9. 的replace属性 10. 编…

UE在TextRender上显示中文文本

文章目录 1.实现目标2.实现过程2.1 添加字体2.2 创建字体材质2.3 将字体应用到TextRender3.参考资料1.实现目标 UE的UMG可以正常支持中文,但是TextRender并不支持中文,因此需要添加本地离线中文字体库,使TextRender显示中文。 2.实现过程 2.1 添加字体 (1)选择User Int…

C++经典题目

目录 P62 3.6 求圆周长面积 P80 3 华氏转摄氏 P80 10 分段函数 P81 21 数列求和 P82 24 打印图形 P229 6 长方体体积 P384 4 printArea 题目来源于C程序设计&#xff08;第4版&#xff09; P62 3.6 求圆周长面积 设圆半径r1.5&#xff0c;圆柱高h3&#xff0c;求圆周长…

Java_笔记_多态_包_final_权限修饰符_代码块

封装&#xff1a;对象代表什么&#xff0c;就得封装对应的数据&#xff0c;并提供数据对应的行为。 一、多态&#xff1a;对象的多种形态。同类型的对象&#xff0c;表现出的不同形态。 1.多态的表现形式&#xff1a;父类类型 对象名称 子类对象; 学生形态 对象 Student s …

Unity Cg着色器开发教程

Unity Cg着色器开发教程 学习在 Unity 中对图形管道进行编程&#xff0c;以便为游戏对象创建独特的视觉表面 课程英文名&#xff1a;Shader Development from Scratch for Unity with Cg 此视频教程共2.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印&#xff0c…