1. 编译步骤:

step1 首先编译类的成员
step2 再是类的成员函数

2. 类的前向声明forward declaration

在创建一个类的对象之前该类必须被定义过(编译器才知道这个对象需要多少存储空间)

3. 友元关系不存在传递性

就算在类的内部定义友元函数,在类外还得再声明一次

struct X {friend void f() {}
}voidd X::g()(return f()//error
void f();//先声明
voidd X::g2()(return f()//再才是可以的

4. 编译器处理完所有类的全部声明后再处理成员函数的定义

5.如果成员使用了外层作用域的某个名字,而该名字代表一种类型,则类不能在之后重新定义该名字。

typedef double Money;
class Account{Money f();typedef double Money;//error
}

6. 类作用域后,在外围的作用域中查找

void  S::f(){int i = ::w;//::w指全局的那个
}

7. 类内部也可以隐藏外层的

int h;
class s{int h;//隐藏外层的
}

C++ Primer 5th笔记(7)chapter7 类:编译相关相关推荐

  1. C++ Primer 5th笔记(7)chapter7 类:类的静态成员

    ● 不能声明为const 的,而且也不能在static 函数体内使用this 指针 ● 在类外部定义静态成员,不能重复使用 static 关键字. void Account::rate(double ...

  2. C++ Primer 5th笔记(7)chapter7 类:字面值常量类

    1. 如果一个类不是聚合类,且符合: ● 数据成员都必须是字面值类型. ● 类必须至少含有一个constexpr构造函数 ● 如果一个数据成员含有类内初始值,则内置类型成员的初始值必须是一条常量表达式 ...

  3. C++ Primer 5th笔记(7)chapter7 类:构造函数、类类型转换、聚合类

    1. 构造函数 1.1构造函数的初始值有时是必须的(比如引用) 1.2 成员初始化的顺序 初始值列表只说明用于初始化成员的值,而不限定初始化的具体执行顺序, 因此构造函数初始化的值的顺序最好与成员声明 ...

  4. C++ Primer 5th笔记(7)chapter7 类

    1. 1.1 成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象 1.2 常量成员函数(const member function) std::string isbn() const{ ...

  5. C++ Primer 5th笔记(chap 16 模板和泛型编程)类型无关和模板编译

    1. 编写类型无关的代码 泛型代码的两个重要原则: 模板中的函数参数是const的引用. 函数体中的条件判断仅使用<比较运算. 大多数类型,包括内置类型和我们已经用过的标准库类型(除unique ...

  6. C++ Primer 5th笔记(chap 15 OOP)继承中的类作用域

    1. 派生类的作用域 每个类定义自己的作用域,作用域内定义成员,当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内.如果一个名字在派生类的作用域内无法正确解析,则编译器将继续在外层的基类作用域中 ...

  7. C++ Primer 5th笔记(chap 18 大型程序工具)多重继承下的类作用域

    1. 派生类的作用域嵌套在直接基类和间接基类的作用域中. 查找过程沿着继承体系自底向上进行, 直到找到所需的名字.派生类的名字将隐藏基类的同名成员. 在多重继承的情况下, 相同的查找过程在所有直接基类 ...

  8. C++ Primer 5th笔记(chap 18 大型程序工具)类型转换与多个基类

    1. 在只有一个基类的情况下, 派生类的指针或引用能自动转换成一个可访问基类的指针或引用. 我们可以令某个可访问基类的指针或引用直接指向一个派生类对象. eg. 一个ZooAnimal. Bear 或 ...

  9. C++ Primer 5th笔记(chap 17 标准库特殊设施)bernoulli_distribution 类

    1. 定义 一个普通类, 而非模板. 此分布总是返回一个 bool 值. 它返回 true 的概率是一个常数, 此概率的默认值是 0.5 string resp; default_random_eng ...

最新文章

  1. abap CA CO CS等操作符
  2. JSONP跨域请求数据报错 “Unexpected token :”的解决办法
  3. mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...
  4. 双十一流量洪峰 支撑阿里核心业务的云数据库揭秘 1
  5. 360搜索下拉词下拉框获客方案分享
  6. Fedora Linux虚拟机常用开发工具
  7. python获取每月的最后一天_关于日期:使用Python获取本月的最后一天
  8. 【渝粤教育】电大中专公共基础课程 (2)作业 题库
  9. 再送 5000 份红包封面!
  10. 瑞幸在前 Manner在后 资本吹不熟的咖啡赛道迎来新变局
  11. 大学计算机模拟2014网络应用,2014全校大学计算机基础模拟考试.doc
  12. 记忆训练: 记数字 (110数字图像编码)
  13. Excel对遗传学质量基因进行卡方分析
  14. 最简单的Tomcat9下载安装教程
  15. ps第二次安装出错解决办法
  16. php获取城市接口,根据ip调用新浪api获取城市名并转成拼音
  17. Android适配全面屏/刘海屏
  18. 前端Vue页面加水印方法(带源码)
  19. 计算机控制版面交换鼠标左右键,鼠标左右键怎么互换呢?左右键互换设置方法...
  20. 四川金弘同创:拼多多推广方式在哪里设置

热门文章

  1. 数据中心机房建设几个重要的国家标准
  2. 迎接100G数据中心以太网
  3. 成功解决ImportError: cannot import name ‘ft2font‘ from ‘matplotlib‘
  4. Python:列表、集合等交集、并集、差集、非集简介及其代码实现之详细攻略
  5. DL之MaskR-CNN:基于类MaskR-CNN算法(RetinaNet+mask head)利用数据集(resnet50_coco_v0.2.0.h5)实现目标检测和目标图像分割(语义分割)
  6. ML之FE:数据处理—特征工程之特征三化(标准化【四大数据类型(数值型/类别型/字符串型/时间型)】、归一化、向量化)简介、代码实现、案例应用之详细攻略
  7. TF之LSTM:利用LSTM算法对Boston(波士顿房价)数据集【13+1,506】进行回归预测(房价预测)
  8. ML之DTRFRExtraTRGBR:基于四种算法(DT、RFR、ExtraTR、GBR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能
  9. Algorithm:论一个产品经理的十八般武艺
  10. TF之CNN:基于CIFAR-10数据集训练、检测CNN(2+2)模型(TensorBoard可视化)