《C++常见问题及解答》
一、类
1. 常数据成员的初始化只能在构造函数的初始化列表中进行
2. 静态数据成员不可以在类内初始化
3. 创建一个对象时的构造函数的调用次序:对象成员的构造函数、对象自身的构造函数
4. 创建一个派生类对象时的构造函数的调用次序:基类的构造函数、派生类对象成员的构造函数、派生类构造函数
5. class默认派生类是以私有继承方式继承基类
6. 基类的私有成员不可以被继承(无论哪种继承方式),故在派生类中无法访问
7. 公有派生类继承了基类中除构造函数、析构函数以外的所有非私有成员,且访问权限也完全相同
7. 派生类无法直接访问基类的私有成员,只能通过公有成员函数来间接访问
8. 基类构造函数的调用通过初始化列表来完成。
9. 派生类只需负责直接基类构造函数的调用。若直接基类构造函数不需要提供参数,则无需在初始化列表中列出(此时会自动调用基类构造函数)
10. 直接基类构造函数、对象成员、常成员和引用成员的初始化只能在构造函数的初始化列表中进行,普通数据成员的初始化也可以放在这里进行
11. 派生类中定义了和基类成员同名的新成员时,该派生类对象将包含这两个成员,只不过派生类对象和派生类内部成员函数访问的都是新成员
12. 派生类的多个直接基类中有同名成员时,该派生类对象将包含这些同名成员,当需要访问这些同名成员时,在成员前指明基类名即可
13. 虚基类的构造函数至多被调用一次,所有层派生类均需调用虚基类构造函数,只有最后一层派生类对虚基类构造函数的调用发挥作用
14. 创建一个继承自虚基类的派生类对象时的构造函数的调用次序:所有虚基类的构造函数、所有直接基类的构造函数、所有对象成员的构造函数、派生类构造函数
15. 多态性指一种行为对应着多种不同的实现,根据C++程序实现多态的不同阶段,多态的实现分为静态联编和动态联编
16. 静态联编是在程序编译阶段就能实现的多态性,也称编译时的多态性;动态联编是在程序执行阶段实现的多态性,也称运行时的多态性
17. 动态多态性:基于虚函数实现,基类与派生类存在的同名函数,且该同名函数的原型在基类和派生类中完全一致(包括返回值类型、函数名、形式参数表),故在编译时无法确定调用的是哪一个成员函数
17. 动态多态性达到的效果:当基类的指针指向基类对象时调用基类中的同名函数,而指向派生类对象时就调用派生类的同名函数,而究竟执行哪一类中的同名函数则要等到运行到这条语句时才能决定
18. 函数重载:要求形式参数在个数、类型、顺序的一个或多个方面有所区别
19. 不可以重载的运算符:. .* :: ?: sizeof
20. 运算符重载不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型
21. 运算符重载的两种方法:用成员函数重载、用友元函数重载
22. 规定使用成员函数重载的运算符:= () [] -> 建议重载为成员函数的运算符:单目运算符、复合赋值运算符
23. 纯虚函数只给出了函数的原型声明而没有具体的实现内容,声明是在虚函数原型的后面赋0
24. 纯虚函数的作用在于基类给派生类提供一个标准的函数原型与统一的接口,为实现动态性打下基础,派生类将根据需要给出纯虚函数的具体实现代码
25. 抽象类包含至少一个纯虚函数,不能生成对象,也不能作为参数类型、函数返回值类型或显式转换的类型,但可以定义抽象类指针或引用来实现动态多态性
26. 抽象类除了必须至少有一个纯虚函数以外,还可以定义普通成员函数或虚函数
二、引用
《C++常见问题及解答》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- eclipse中误删tomcat后,文件都报错,恢复server时无法选择tomcat7.0解决办法
创建Tomcat v7.0 Server 不能进行下一步. 解决方法: 1.退出 eclipse 2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runt ...
- 将图片写入二进制文件,再从二进制文件还原图片(c++)
#include "string" #include "iostream" #include "fstream" using namespa ...
- Maven DebugConfiguration配置运行内存
-Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
- 电子相册之bitmap
位图文件主要分为3部分:1. 文件信息头 14Byte 2. 位图信息头 40Byte 3. RGB颜色阵列 由图像长宽尺寸决定 1. 文件信息头 定义结构体: typedef s ...
- GoLand软件免激活的使用方法
由于官方的Goland软件,免费使用期限是30天.如果你不购买产品的话,就需要不断的卸载和重装软件才能使用.不过要是您的资金允许的话,可以去http://www.jetbrains.com/go/bu ...
- vim 配色方案
1. 自己电脑上的vim 注释很难看清,又不想取消高亮.原来显示: 在 if has("syntax") syntax onendif 语句下面追加一句: colorscheme ...
- 【8086汇编-Day7】关于多个段的程序的实验
实验一 实验二 实验三 实验四 实验五 实验六 总结 在集成环境下,内存从0770段开始按照段的先后顺序和内容多少分配,并且分配的都是16的倍数 关于实际占用的空间公式的话其实极容易想到(假设有N个字 ...
- 打开所有https网页都提示证书错误
最近安装了网上下载的ghost系统,可是不管是win7还是xp,打开所有的https网站都提示证书错误.想想现在打击盗版系统的力度不断增加,以前做的比较好的盗版系统网站都已经不再做系统了,现在下载的g ...
- 【LG1975】[国家集训队]排队
[LG1975][国家集训队]排队 题面 洛谷 题解 又是一个偏序问题 显然\(CDQ\) 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 #include <ios ...
- CF 314 E. Sereja and Squares
E. Sereja and Squares http://codeforces.com/contest/314/problem/E 题意: 给你一个擦去了部分左括号和全部右括号的括号序列,括号有25种 ...