《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 安装并启动 ...
随机推荐
- 浅析MySQL 5.7组复制技术(Group Replication)
Group Replication is know as an up to date HA(High Availablity) solution which is supported in ...
- 安装mysql zip 安装包 Navicat连接
笔者在安装mysql时一直出现各种问题,今天难得成功一次,决定记录一下,留作纪念与参考 安装第一步,下载mysql https://dev.mysql.com/downloads/mysql/ 以在w ...
- 怎么将oracle的sql文件转换成mysql的sql文件
怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...
- 使用EF Core的CodeFirt 出现的问题The specified framework version '2.1' could not be parsed
今天使用了一下EF Core的Code First,进行数据库迁移的的时候报错了: The specified framework version '2.1' could not be parsed ...
- 【tp5.1】通过PHPExcel实现导入excel表格
1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel 2.下载解压后,将Classes改名为PHPExcel如图 3.将文件夹复制到 ...
- LCD触屏驱动
tiny4412多点触摸屏驱动程序(基于I2C协议): #include <linux/kernel.h> #include <linux/module.h> #include ...
- Flask后台管理
管理后台主页 需求 为后台主页提供专门的视图函数 需要带入当前管理员用户相关信息以便在界面进行展示 代码实现 在 modules/admin/views.py 文件中添加视图函数 @admin_blu ...
- python代理爬取存入csv文件
爬取高匿代理 from urllib import request import re import time f = open('西1.csv','w',encoding='GBK') header ...
- Docker入门系列01
前两篇写了 Docker 如何安装和相关的概念,当然概念的东西省略了很多,主要是自己水平有限,所以后期会可能增添.但以上内容都是用别人的建好的 镜像(Image) ,这怎么行,我们应该自己动手造轮子, ...
- (数据科学学习手札37)ggplot2基本绘图语法介绍
一.简介 ggplot2是R语言中四大著名绘图框架之一,且因为其极高的参数设置自由度和图像的美学感,即使其绘图速度不是很快,但丝毫不影响其成为R中最受欢迎的绘图框架:ggplot2的作者是现任Rstu ...