C++基础 namespace register bool
1. namespace
(1)命令空间
C中的命名空间
在C中只有一个全局作用域
C语言中所有全局标识符共享同一个作用域
标识符之间可能发生冲突
C++中提出了命名空间的概念
命令空间将全局作用域分成不同的部分
不同命令空间中的标识符可以同名而不会发生冲突
命令空间也可以互相嵌套
全局作用域也叫默认命令空间。
(2)C++命名空间的定义:
namespace name {....}
(3)C++命令空间的使用:
使用整个命令空间:using namespace name;
使用命令空间中的变量:using name::variable;
使用默认命令空间中的变量:::variable
默认情况下可以直接使用默认命令空间中的所有标识符。
(4)C++命令空间编程实践
namespace NameSpaceA
{
;
}
namespace NameSpaceB
{
;
namespace NameSpaceC
{
struct Teacher
{
];
int age;
};
}
}
int main()
{
using namespace NameSpaceA;
using NameSpaceB::NameSpaceC::Teacher;
printf("a = %d\n", a);
printf("a = %d\n", NameSpaceB::a);
NameSpaceB::NameSpaceC::Teacher t2
Teacher t1 = {};
printf("t1.name = %s\n", t1.name);
printf("t1.age = %d\n", t1.age);
system("pause");
;
}
(5)结论
(a)namespace是设置符号的作用域,所以函数,变量,类型定义都可以放在里面。
(b)namespace的定义:namespace name {....},并可以嵌套定义。
(c)namespace的使用:
导入整个 namespace, using namespace name;
导入namespace中的一个符号, using name::value;
单词使用namespace中的一个符号, name::value
2. register
(1)register的作用
请求编译器让变量直接放到寄存器中,速度快。
(2)C中 的register
无法取地址
(3)C++中的register
可以取地址,若取地址,变量实际存放于内存,即register声明无效。
3. bool
(1)bool类型的特点
取值只有 true 和 false。
true,用 1 表示,false 用 0 表示。
(2)bool类型占用内存
理论bool只用一个字节,如果多个bool变量定义在一起,可能会个占用一个bit,这取决于编译器实现。
(3)对bool变量赋值
赋值非0,转换为 true,赋值0,转换为false。
C++基础 namespace register bool的更多相关文章
- Python的基础类型(int,bool,str):
Python的基础类型(int,bool,str): 1.int -------> 整形:主要用力进行数字计算 2.string ------>字符串:可以保存少量数据并进行相关的操作 3 ...
- C++之namespace、bool
namespace: 1.namespace:标识符的各种可见范围.C++ 标准程序库中的所有标识符都被定义在一个名为 std 的namespace中. 2.当使用<iostream>的 ...
- new 经典基础模板总结
NOIP-NOI-ZJOI基础模板总结 目录 C++语言和STL库操作 重载运算符操作 /* 重载运算符 格式 如重载小于号 这里是以x递减为第一关键字比较,y递减为第二关键字比较 */ bool o ...
- NOIP经典基础模板总结
date: 20180820 spj: 距离NOIP还有81天 目录 STL模板: priority_queue 的用法:重载<,struct cmpqueue 的用法 stack 的用法vec ...
- AI基础架构Pass Infrastructure
AI基础架构Pass Infrastructure Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic Dep ...
- Pass Infrastructure基础架构(上)
Pass Infrastructure基础架构(上) Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic De ...
- 【笔记】《DirectX 9.0 3D游戏开发编程基础》:Direct3D初始化
Direct3D初始化大概分为4个步骤: 1.获取接口IDirect3D9的指针.(Direct3DCreate9函数调用). 该接口用户获取系统中物理硬件设备的信息并创建接口IDirect3DDev ...
- vector基础
//STL基础 //容器 //vector #include "iostream" #include "cstdio" #include "vecto ...
- 基础博弈论之——简单的博弈问题【hdu1525】【Euclid‘s Game】
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60481118 由于今天考了一道博弈的问题,我竟什 ...
随机推荐
- 设计模式之装饰器模式io的小入门(十一)
装饰器模式详解地址 原文总结 定义: 在不必改变原类文件和使用继承的情况下, 动态的扩展一个对象的功能. 通过创建一个包装对象, 也就是装饰来包裹真实的对象 部分详解提示 看了一些文档, 装饰器模式非 ...
- 基于vue2+nuxt构建的高仿饿了么(2018版)
前言 高仿饿了么,以nuxt作为vue的服务端渲染,适合刚接触或者准备上vue ssr的同学参考和学习 项目地址如遇网络不佳,请移步国内镜像加速节点 效果演示 查看demo请戳这里(请用chrome手 ...
- FlexPaper查看Flash文件
HTML 代码: <head> <meta http-equiv="Content-Type" content="text/html; charset= ...
- ArcGIS for Service中JavaScript预览在内网环境无法使用
1.问题说明 在使用ArcGIS for Service时经常会遇到一个问题,那就是我们需要对已经发布的服务进行预览,预览时点击对应服务,选择View in中的ArcGIS JavaScript就可在 ...
- 【Angular JS】正确调用JQuery与Angular JS脚本 - 修复Warning: Tired to load angular more than once
自己正在做一个小网站,使用Angular JS + Express JS + Mongo DB,在开发过程中,遇到一些问题,所以整理出来.希望对大家都有帮助. 这是今天解决的一个问题,Angular ...
- 【菜鸟学Linux】Cron Job定期删除Log(日志)文件
以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长 ...
- C#调用C++的dll存在的问题
C#调用C++写的DLL时,在C#程序中,使用DllImport定义C++导出函数的定义信息,之前在C++中定义导出函数时,使用了long作为参数类型,使用C#调用时,开始在64位版本是哪个测试,一切 ...
- 关于硬盘分区使用exFat格式的优势及劣势(含摘抄)
优势 可以设置最大32M的簇: 不记录日志. 劣势 无法使用windows的“文件共享”: 通过近期某个文件数量密级任务的测试发现,在大量文件的处理性能上,NTFS比exFAT文件系统的性能高出不少. ...
- May 03rd 2017 Week 18th Wednesday
Truth needs no colour; beauty, no pencil. 真理不需要色彩,美丽不需要涂饰. There is no absoulte truth and everlastin ...
- April 29 2017 Week 17 Saturday
Every man is a poet when he is in love. 每个恋爱中的人都是诗人. It is said this saying was from Plato, the famo ...