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的更多相关文章

  1. Python的基础类型(int,bool,str):

    Python的基础类型(int,bool,str): 1.int -------> 整形:主要用力进行数字计算 2.string ------>字符串:可以保存少量数据并进行相关的操作 3 ...

  2. C++之namespace、bool

    namespace: 1.namespace:标识符的各种可见范围.C++ 标准程序库中的所有标识符都被定义在一个名为  std 的namespace中. 2.当使用<iostream>的 ...

  3. new 经典基础模板总结

    NOIP-NOI-ZJOI基础模板总结 目录 C++语言和STL库操作 重载运算符操作 /* 重载运算符 格式 如重载小于号 这里是以x递减为第一关键字比较,y递减为第二关键字比较 */ bool o ...

  4. NOIP经典基础模板总结

    date: 20180820 spj: 距离NOIP还有81天 目录 STL模板: priority_queue 的用法:重载<,struct cmpqueue 的用法 stack 的用法vec ...

  5. AI基础架构Pass Infrastructure

    AI基础架构Pass Infrastructure Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic Dep ...

  6. Pass Infrastructure基础架构(上)

    Pass Infrastructure基础架构(上) Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic De ...

  7. 【笔记】《DirectX 9.0 3D游戏开发编程基础》:Direct3D初始化

    Direct3D初始化大概分为4个步骤: 1.获取接口IDirect3D9的指针.(Direct3DCreate9函数调用). 该接口用户获取系统中物理硬件设备的信息并创建接口IDirect3DDev ...

  8. vector基础

    //STL基础 //容器 //vector #include "iostream" #include "cstdio" #include "vecto ...

  9. 基础博弈论之——简单的博弈问题【hdu1525】【Euclid‘s Game】

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60481118 由于今天考了一道博弈的问题,我竟什 ...

随机推荐

  1. 关于 Android Studio 如何连接手机调试

    第一步:设置-> 打开开发者选项,以及USB调试模式 第二步:关于手机->版本号,点击版本号会弹出提示:已经处于开发者模式,无需操作 第三步:设置->在搜索框中输入HDB,此时会弹出 ...

  2. EF--payload or not

    负载加载非负载加载适用于多对多场境. 一.非负载(payload-free)加载 1.1创建表 create table Album ( AlbumId ,), AlbumName ) ) creat ...

  3. WebAPI示例

    一.新建项目 二. 代码: Models.Products实体类 public class Product { /// <summary> /// 产品编号 /// </summar ...

  4. 二种方法安装卸载Windows服务的命令

    第一种方法:通过Dos命令安装系统服务1. 开始 运行输入 cmd 进入dos窗口2. cd命令进入到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下, ...

  5. Asp.Net实现伪静态(通过URLRewriter)

    一.起因 最近一个项目要实现伪静态,之前没接触过,故一切从零开始,开始网上查资料,方法大概有三种,但是我都试了好几个,都失败了.望有建议的博友给点建议,这里我实现了一种方式,是通过微软URLRewri ...

  6. 爬虫技术框架——Heritrix

    Heritrix是一个由Java开发的开源Web爬虫系统,用来获取完整的.精确的站点内容的深度复制, 具有强大的可扩展性,运行开发者任意选择或扩展各个组件,实现特定的抓取逻辑. 一.Heritrix介 ...

  7. hdu-2838 Cow Sorting---逆序对的花费

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2838 题目大意: 就是求将之前的排列变成一个递增的排列,每交换两个数的代价为两个数的和,求变成递增的 ...

  8. 【LOJ6029】「雅礼集训 2017 Day1」市场(线段树裸题)

    点此看题面 大致题意: 维护序列,支持区间加法,区间除法(向下取整),区间求\(min\)和区间求和. 线段树维护区间除法 区间加法.区间求\(min\)和区间求和都是线段树基本操作,因此略过不提. ...

  9. win10 下的python虚拟环境安装使用(使用powershell)

    安装virtualenv 若要使用python虚拟环境进行开发,首先需要安装virtualenv.命令:pip install virtualenv 我已经装过了

  10. git移除某文件夹的版本控制

    thinkphp框架,Apps/Runtime下目录移出版本控制. git rm -r -n --cached  */Runtime/\*      //-n:加上这个参数,执行命令时,是不会删除任何 ...