#####这二个东西,经常被我们忽略了,其实很实用。当你深入c++世界的时候,总有一天会遇到他们,先面熟一下吧。


###1.0 名称空间。


###知识点综述:

名称空间:将一个程序中所有名字规范到不同的集合-名字空间中明确每个名字中没有任何二个相同的名字定义。格式:
namespace name{code;}//没有分号原则:1.0 使用在已经命名的名称空间中声明的变量,不使用外部全局变量。2.0 对于using声明,首先将其作用域设置为局部而不是全局。3.0 不要在头文件中使用using声明,这样使得可用名称空间变的模糊,容易出现二义性。4.0 导入名字空间,首先使用名字域解释和using声明,尽量不用using命令。其它知识点:5.0 我们经常为了方便,使用  using namespace std;//就是std名字空间。6.0 ::域解释符,表明使用名字来自哪个空间, 比如 std::cout<<var;复制代码

###相关代码:


#include<iostream>
#include<string>
using namespace std;namespace cat_name
{string namespace_name;void print() {cout << "hello world" << endl;}//名称空间嵌套namespace c1 {void display() {cout << namespace_name << endl;}}class Cat {private:string name;public:Cat(string name){this->name = name;}void speak();};}namespace cat_name {void Cat::speak() {cout << "my name is " << name << endl;}
}namespace dog_name {string namespace_name;void print() {//作用域访问cat_name()中的print函数cout << "我要调用另一个名称空间的函数" << endl;cat_name::print();}class Dog{private:string name;public:Dog(string name) {this->name = name;}void speak(){cout << "my name is " << name << endl;}};
}int main()
{string namespace_name;/* 局部using使用using cat_name::namespace_name;namespace_name = "cat_name";*/cat_name::namespace_name = "cat_name";dog_name::namespace_name = "dog_name";cat_name::Cat cat("黑猫警长");dog_name::Dog dog("旺财"); //如果不加名称空间,会显示未定义错误cat.speak();dog.speak();//双重域限定才行。cat_name::c1::display();system("pause");return 0;
}
复制代码

###结果:


my name is 黑猫警长
my name is 旺财
cat_name
复制代码

###2.0 条件编译。


###知识点综述:

 条件编译:采用条件编译指令,可以指定某些代码在满足一定条件时参与编译或不参与编译.
复制代码

###图解知识点:


###代码:


#include<iostream>
#include<string>
using namespace std;#define M
void display()
{
#if defined(M)cout << "M存在" << endl;
#elsecout << "M不存在" << endl;
#endif
}int main()
{display();system("pause");return 0;
}复制代码

###结果:

M存在
复制代码

###今天跑步了,今天买了一把雨伞。今天下起了小雨。

啊啊啊。雨伞掉了,这至少是第二把了,现在掉了二件外套,二个..........
复制代码

c++14 0 名字空间和条件编译相关推荐

  1. c++ 名字空间 namespace

    定义 namespace 名字空间的名字{ 全局变量 类型定义 函数 } 意义 对于一个较大型的C++程序来说,需要由多个程序员相互协作编写,这样的情况下容易出现不同程序员在需要负责的程序部分使用相同 ...

  2. R语言-解决载入了名字空间rlang0.4.5,但需要的是大于等于0.4.6

    问题 # Error: package or namespace load failed for 'clusterProfiler' in loadNamespace(i, c(lib.loc, .l ...

  3. R | 载入了名字空间‘ellipsis’ 0.3.1,但需要的是>= 0.3.2

    在调用"xcms"包时,出现报错内容,如下: 载入了名字空间'ellipsis' 0.3.1,但需要的是>= 0.3.2 错误:无法载入程辑包'MSnbase' 图1 报错提 ...

  4. C++的名字空间(很重要)

    一.什么是名字空间? C++中对函数.变量.类型进行逻辑上的划分,避免同名的标识符重定义. 当我们在处理非常庞大复杂的项目时,不可避免地需要多人共同合作,可是人一多,取出来的名字难免重复,于是就会发生 ...

  5. 名字空间:namespace

    在C++中支持三种域:局部域.名字空间域和类域. 名字空间域是随标准C++而引入的.它相当于一个更加灵活的文件域(全局域),可以用花括号把 文件的一部分括起来,并以关键字namespace开头给它起一 ...

  6. C++:名字空间的使用

    首先明确一下要使用名字空间的目的是为了防止名字冲突. 一.访问名字空间中元素的3种方式: 1.可以自己去定义一些名字空间: namespace NameSpace1 {void fun(){}//该f ...

  7. Qt中Ui名字空间以及setupUi函数的原理和实现

    Qt中Ui名字空间以及setupUi函数的原理和实现 分类: Qt GUI 2012-03-08 15:38 10514人阅读 评论(4) 收藏 举报 uiqtsignalclassdelete 用最 ...

  8. 【tensorflow】安装cuda10.0 and cudnn 7.5.0 and tensorflow-gpu==1.14.0

    安装cuda 的一天 使用实验室同学下载好的cuda安装报错 文件直接传:7zip Data error: 原因是安装文件损坏,重新下载 安装包下载 cuda 10.0版本 官网安装中断: 开了vpn ...

  9. java schema名_关于Schema的名字空间

    基本的 XML Schema 的使用就是这样,下面我们要介绍 XML Schema 的另外一个核心的部分也是 Schema 最关键的一个部分,就是关于 Schema 的名字空间( namespace ...

  10. python 绘图与可视化 Graphviz 二叉树 、 error: Microsoft Visual C++ 14.0 is required

    需要对二叉树的构建过程进行可视化,发现了这个Graphviz软件,他对描绘数据间的关系十分擅长. 下载链接:https://graphviz.gitlab.io/_pages/Download/Dow ...

最新文章

  1. c语言基础习题下载,C语言基础题目
  2. 使用css实现背景图片无重复填充
  3. wp7中的fill_parent
  4. android传输注册数据异常,android数据传值再获取的问题
  5. spring security实现登录验证以及根据用户身份跳转不同页面
  6. Python 链接汇总
  7. java5新特性静态引用、foreach、自动装箱和泛型枚举以及可变参数的总结
  8. 运维linux脚本实例,Shell脚本使用示例
  9. 第二次作业+105032014037
  10. css/html目录
  11. plsql导入数据主键_使用plsql添加数据并自动生成主键
  12. smarty php5.5,smarty如何完美兼容php5.5和preg_replace_callback如何替换preg_r
  13. EXCHANGE服务器一些常用的邮件限制方法笔记
  14. 资源管理器和计算机的功能基本相同吗,“资源管理器”和“计算机”的功能基本相同...
  15. Python 去除重复行数据
  16. C# 导出Excel解决Cannot get a text value from a numeric cell或者Cannot get a numeric value from a text cell
  17. 【程序人生】全国一二线程序员工资统计新鲜出炉,又涨了!
  18. python工程师年薪多少万_Python工程师工资待遇一般是多少
  19. 前端开发:Vue报错Avoid mutating a prop directly since the value will be…的解决方法
  20. 如何做一个炫酷的动画网站-css实现图片上下浮动效果

热门文章

  1. 使用cmd命令创建maven(web)项目+项目转换成IDEA项目+项目打包+Jetty运行Web项目
  2. HttpClient读取数据乱码的解决方案
  3. Mybatis if标签
  4. 第二阶段团队站立会议02
  5. [Bootstrap]7天深入Bootstrap(1)入门准备
  6. 两台电脑如何实现共享文件
  7. https协议为什么比http协议更加安全
  8. spring boot高性能实现二维码扫码登录(下)——订阅与发布机制版
  9. spring3: 依赖和依赖注入-xml配置-DI的配置
  10. jQury+Ajax与C#后台交换数据