c/c++ accumulation
非const引用只能绑定到与该引用同类型的对象;
const引用则可以绑定到不同但相关的类型的对象或绑定到右值。
因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。这个规则有三个例外,头文件可以定义类、值在编译时就已知道得const对象和inline函数。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的。
C++ const变量在实际编程中起着非常重要的作用,当我们在声明时,需要对其加初始化,因为默认的内部连接都必须被初始化。
指针和引用:
它们之间有两个重要的区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化对象是错误的。第二个重要的区别则是赋值行为的差异:给引用赋值修改的是该引用做关联的对象,而并不是使引用与另一个对相关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的yuanyin)
typedef和#define的区别
1.可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这样做。
例: #define peach int
unsigned peach i; //ok
typedef int banana;
unsigned banana i; //error,illegal
2.在连续几个变量的声明中,用typedef定义的类型能够保证声明中所有的变量均为同一种类型,而用#define定义的类型则无法保证
例: #define int_ptr int*
int_ptr chalk, cheese; //chalk is int*, but cheese is int
typedef char * char_ptr;
char_ptr Bentley, Rolls_Royce; //both Bentley and Rolls_Royce are char *
注意c++中: typedef string *pstring
const pstring cstr;
上面声明中cstr为指向string类型对象的const指针,相当于srting * const cstr;
int *ip[4]; //array of pointers to int
int (*ip)[4]; //pointer to an array of 4 ints
c++中规定了计算其操作数次序的操作符有:&&,||(这两个操作符的操作数计算顺序导致了短路现象),?:(条件操作符)和,(逗号)。
const引用比非const引用更加灵活,因为const引用能接受const类型、非const类型、右值以及其他可转换成该类型的值,例如short a = 0; const int& b = a;,而非const型引用只能接受和自己类型完全相同的值,不能接受其他类型、const引用或右值。
没有默认构造函数的类类型的成员,以及const或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中进行初始化。
c++容器中的元素不能是引用类型,输入输出标准库类型和auto_ptr类型。
函数的参数声明为const型的引用或指针的好处是调用该函数时既可以给该参数传递const的引用或指针,也可以传递非const型的引用或指针,而如果参数声明为非const型,则调用函数时只能为其传递非const型的引用和指针。
虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型,以实现统一的接口,不同定义过程。如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数。
class Base {
public:
virtual int fcn(){return 0;}
};
class D1 : public Base {
public:
// hides fcn in the base; this fcn is not virtual
int fcn(int a){return a;} // parameter list differs from fcn in Base
// int fcn(){return 1;}
// D1 inherits definition of Base::fcn()
};
class D2 : public D1 {
public:
int fcn(int a){return a;} // nonvirtual function hides D1::fcn(int)
int fcn(){return 2;} // redefines virtual fcn from Base
};
D1中的int fcn(int a)只是对外屏蔽了Base类里的fcn(屏蔽接口),但实际D1类中依然保存了Base类里的fcn的实现(未屏蔽实现),所以D2才可以重定义Base类的fcn实现多态。
D1 d1obj;
D1 *pd1 = &d1obj;
pd1->fcn(1): //OK
pd1->Base::fcn(): //OK
pd1->fcn(): //error: no matching function for call to 'D1::fcn()'|(屏蔽接口)
自动化
c/c++ accumulation相关推荐
- 牛客网【每日一题】4月13号 Accumulation Degree
文章目录 题目描述 样例分析: 题意: 题解: 代码: 本题目传送 题目树学是这个题的简易版,也涉及换根问题,可以先看看这个 树学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32 ...
- 74-A/D指标,Accumulation/Distribution,积累/派发线,离散指标.(2015.7.1)
A/D指标,Accumulation/Distribution 积累/派发线,离散指标 观井映天 2015.7.1 转载于:https://www.cnblogs.com/i201102053/p/1 ...
- Accumulation point
In mathematics, a limit point, accumulation point, or cluster point of a set {\displaystyle S}S in a ...
- 【论文阅读】Online Attention Accumulation for Weakly Supervised Semantic Segmentation
一篇弱监督分割领域的论文,其会议版本为: (ICCV2019)Integral Object Mining via Online Attention Accumulation 论文标题: Online ...
- Accumulation Degree
Accumulation Degree 有一个有n个节点,n-1条河道的树形水系,每个河道有一个最大容水量\(c[x][y]\)表示点x到y的最大容水量,源点可以源源不断出水,以源点作为根节点的树的叶 ...
- Integral Object Mining via Online Attention Accumulation
Integral Object Mining via Online Attention Accumulation 摘要 1. Introduction 2. Related Work 3. Metho ...
- pytorch DDP加速之gradient accumulation设置
pytorch DDP 参考:https://zhuanlan.zhihu.com/p/250471767 GPU高效通信算法-Ring Allreduce: https://www.zhihu.co ...
- 证据积累聚类集成算法(Evidence Accumulation Clustering)代码复现与实验
1. 基本环境 运行环境: - Python 3.7 + - Jupyter NoteBook - 处理器:2.6 GHz 六核Intel Core i7 2. 聚类集成代码 # 导入包 import ...
- Lifelong Person Re-Identification via Adaptive Knowledge Accumulation论文笔记
Lifelong Person Re-Identification via Adaptive Knowledge Accumulation Abstract 提出LReID,设计了Adaptive K ...
- matlab accumulation,Matlab学习笔记(三)
Array Creation and Concatenation Create Numeric Arrays 在MATLAB中,所有的变量都是arrays,并且,默认所有的数值变量都是double类型 ...
最新文章
- bitset HDU6515 Coding Problem
- TreeMap源码分析,看了都说好
- 文本文件如何在其他地方打开
- spring boot2 整合(一)Mybatis (特别完整!)
- python 服务端渲染_客户端渲染和服务器渲染的区别
- 西安后宰门小学_陈洪杰:“数学魔术”课程校本化的价值与意义 || 为西安后宰门小学点个赞...
- 使用Angular,Ionic 4和Spring Boot构建移动应用
- 光端机使用与日常保养
- QT中border-image的解释
- Golang heap源码简单走读
- 关于接口测试的一些总结
- 文件上传后input怎么回显_tftp上传文件报错,tftp上传文件报错怎么办
- HashMap排序(java)
- Postman下载教程
- 小说网站源码+采集器+App端
- Android学习笔记3-开发过程中一些常用操作
- vs2021下载步骤
- Teradata天睿任命王波为大中华区总裁
- K8S kube-scheduler-master CreateContainerError 问题解决及思路
- gfp 通用成帧程序 帧结构 校验 crc 多项式 加扰
热门文章
- IBM ServerGuide 9.21
- H.323-SIP信令网关的实现
- Python内置函数os模块shutil模块
- 怎么增加照片的KB大小
- 2021年中国房地产行业发展现状分析(附房地产开发投资额、房屋施工面积、商品房销售情况及企业排名统计)[图]
- 详解ISO 13400文档(DoIP协议)-2
- [原创]WIN8系统的远程桌面漏洞 利用QQ拼音纯净版实现提权
- 织梦新建php支持标签,织梦教程:新建php页面且模板支持读取标签
- iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码...
- C#程序探测未知网络环境的神操作