首页 > 其他分享 >尽量使用using声明而不是using编译指令

尽量使用using声明而不是using编译指令

时间:2023-10-12 20:36:57浏览次数:32  
标签:编译 Jill 指令 using fetch 名称

title: 
aliases: 
tags:
  - cpp/编程规范
category:
  - 方法
stars: 
url: 
creation-time: 2023-10-12 10:22
modification-time: 2023-10-12 10:57:47

[[Cpp]] 中给出了 using 声明和 using 编译指令来简化命名空间中对名称的使用。using 声明使特定的标识符可用,using 编译指令使整个名称空间可用。
一般来说,使用 using 声明比使用 using 编译指令更安全,这是由于它只导入指定的名称。如果该名称与局部名称发生冲突,编译器将发出指示using 编译指令导入所有名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。[1]

using 声明的示意

namespace Jill {
	double bucket(double n) { ... }
	double fetch;
	struct Hill { ... };
}  
char fetch;
int main() {
  using Jill::fetch;  // put fetch into local namespace
  double fetch;       // Error! Already have a local fetch
  std::cin >> fetch;       // read a value into Jill::fetch
  std::cin >> ::fetch;     // read a value into global fetch
  ...
}

上例中的 using Jill::fetch 在函数内部进行了 using 声明,那么在 main 函数中,fetch 就代表了 Jill::fetch

Reference


  1. [[C++ Primer Plus(第6版)中文版]] Chap. 9 ↩︎

标签:编译,Jill,指令,using,fetch,名称
From: https://www.cnblogs.com/pomolnc/p/17760468.html

相关文章

  • 编译那些事儿-1
    前言   本章节主要梳理编译过程中对概念的各种疑惑,属于是碎片式知识积,没有很规范的体系,阅读前请获悉!1.代码的构建系统有哪些常见的代码构建系统包括:Make:是一个最古老的构建系统,用于编译和构建C程序。Make使用Makefile文件来描述编译规则和依赖关系。Ant:是Java平台上的构建系......
  • Cython加密python代码防止反编译
    本方法适用于Linux环境下:1.安装库Cythonpip3installCython==3.0.0a10 2.编写待加密文件:hello.pyimportrandomdefac():i=random.randint(0,5)ifi>2:print('success')else:print('failure') 3.编写加密脚本import......
  • 三类MIPS指令
    MIPS的指令可以分为3种操作类型R型I型J型1、R型指令OP:000000    由func来决定他的功能rs、rt是两个源操作数所在的寄存器号rd是目的操作数所在的寄存器号shamt是位移量,执行移位操作的时候指明需要移动的次数R型指令的指令表:2、I型指令操作功能由OP决定rs是第一个源......
  • git 常用指令与简单规范
    1.前言随着前端项目数量、前端开发人员、前端业务的日渐增多,则非常有必要整理一份简单的git规范,来进行项目开发的规范化约束。本文包括开发常用git指令、git分支管理规范、git提交规范等。2.git常用指令2.1.查看最新的远程分支#查看远程分支gitbranch-r#......
  • 开发人员常用Docker指令
    开发人员在使用Docker进行应用程序开发和部署时,常用的Docker指令可以分为以下几类:容器管理指令:dockerrun:创建并运行一个新的容器。dockerstart:启动一个已经停止的容器。dockerstop:停止一个正在运行的容器。dockerrestart:重启一个正在运行的容器。dockerpause:暂停一个......
  • 在Windows下配置Clang编译器
    PreferencesLinux&macOS平台LLVM相关工具链下载2019年,在Windows下配置Clang编译器VisualStudio2022中使用Clangclion使用clang编译Clion2020.3:如何设置Clang编译器这篇文章主要介绍如何在Windows使用Clang编译器来编译C/C++程序(在命令行下,clang是C编译器,编译C++......
  • OpenHarmony-systemui项目工程无法编译的解决办法
    在探索OpenHarmony3.2Release的过程中,我希望通过修改系统软件来使系统更符合HarmonyOS特性,但是在尝试编译systemui时,遇到了这个问题:hvigorERROR:'entryModules'mustbeconfiguredforafeaturemodule.Detail:Set'entryModules'inthebuild-profile.json5f......
  • CudaText 编译运行c
             CudaText是一款轻量级地文本编辑开源软件。在安装codeblocks的gcc编译器后可以编译运行c。配置如下打开Tools-->config-->Add。 其中Parameters设置如下为编译和运行。{FileName} -o {FileNameNoExt}&&cmd/c{FileNameNoExt} 按快......
  • C++ - 使用using定义别名
    大家都知道,在 C++ 中可以通过typedef重定义一个类型:typedefunsignedintuint_t;被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。因此,下面这样将不是合法的函数重载:voidfunc(unsignedint);voidfunc(uint_t); //error:redefinition使用ty......
  • Vue自定义指令实现复制功能
    importVuefrom'vue'importstorefrom'../store'functioncopyMethod(value){lettext=''switch(typeofvalue){case'number':text=value.toString()breakcase'object':text=JSON......