博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++14 0 名字空间和条件编译
阅读量:6954 次
发布时间:2019-06-27

本文共 1975 字,大约阅读时间需要 6 分钟。

#####这二个东西,经常被我们忽略了,其实很实用。当你深入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<

###相关代码:


#include
#include
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
#include
using namespace std;#define Mvoid display(){#if defined(M) cout << "M存在" << endl;#else cout << "M不存在" << endl;#endif}int main(){ display(); system("pause"); return 0;}复制代码

###结果:

M存在复制代码

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

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

转载地址:http://udnil.baihongyu.com/

你可能感兴趣的文章
DOIS 2019 DevOps国际峰会北京站来袭~
查看>>
数据库_SQL语句
查看>>
LRU算法的精简实现(基于Java)
查看>>
Web.xml配置详解之context-param
查看>>
Android二维码生成与解析技术,ZXing用法和封装
查看>>
php获取时间问题,用默认配置读到本地时间。。。。。
查看>>
vim 介绍安装 复制 剪切 粘贴
查看>>
Android菜鸟的成长笔记(4)——你真的理解了吗?
查看>>
软件工程 part4 评价3作品 修改
查看>>
dfs的返回条件
查看>>
ASP.NET中Web.Config配置文件详解与应用
查看>>
Django之分页
查看>>
使用wkhtmltopdf的一些事情
查看>>
万达 恒大 万科
查看>>
【 OJ 】Score
查看>>
离开当当
查看>>
各种同步方法性能比较(synchronized,ReentrantLock,Atomic)
查看>>
idea报错项积累
查看>>
Express踩坑系列之初识Express
查看>>
不使用c的任何库函数 实现字符串到整数的转换 整数到字符串的转换
查看>>