C++常见的概念
1)多态:允许将子类类型的指针赋值给父类类型的指针。赋值以后,父类对象可以根据当前赋值给它的子类对象的特性以不同的方式运作。
2)深拷贝:重新分配内存;浅拷贝:共用同一内存。
3)友元:非成员函数不能通过类的对象访问私有成员,但是友元(函数)可以;友元函数却不是成员函数,但必须在类中声明;类与类之间的友元关系不能被继承。
非成员函数不能是虚的,所以友元函数也不能是虚的。
4)复制构造函数与赋值:有新对象被定义则调用复制构造,没有则调用赋值。函数之间的值传递时,会隐式定义新对象,所以会调用复制构造函数
5)构造函数与析构函数:派生类不能继承父类的构造和析构函数,要定义自己的构造和析构函数。子类定义构造函数时,可以选择显式调用父类的构造函数(如果父类只有有参构造函数,则子类必须显式调用)
执行顺序:父类构造函数、子类构造函数、子类析构函数、父类析构函数
将构造/析构函数设置为protected则无法直接创建该类。
构造函数的调用顺序为:调用基类的构造函数->调用成员对象的构造函数->调用自身的构造函数。
构造函数的调用次序完全不受构造函数初始化列表的表达式中的次序影响,与基类的声明次序和成员对象在函数中的声明次序有关
6)变量的初始化顺序:1)基类的静态变量或全局变量;2)派生类的的静态变量或全局变量;3)基类的成员变量;4)派生类的成员变量
7)空类默认产生的成员函数:1)默认构造函数;2)复制构造函数;3)析构函数;4)赋值运算符重载函数;5)取址运算符重载函数、const取址运算符重载函数
8)继承:派生类的性质=min(基类性质,继承性质);私有成员不能访问。
9)默认参数:1)既有声明又有定义时,只允许在声明中使用默认参数;2)默认参数应该从右至左定义(不允许跳);3)默认参数调用的调用顺序是从左至右;4)默认参数可以全局变量(常量)、函数
10)初始化列表A::A:a(0),b(1){}
1)赋值是删除原值,赋予新值;初始化列表开辟空间和初始化是同时完成,直接给予一个值。
2)只能用初始化列表不能用赋值的情况:1、类中含有const、reference成员常量;2、基类的构造函数;3、成员类型是没有默认构造函数的类
C++常见的概念的更多相关文章
- C#常见的概念阐述
在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...
- Java面试常见各种概念区别比较
Hashtable 和 HashMap之间的区别 Hashtable是继承了Dictionary,是线程安全的.HashMap实现了Map接口,不是线程安全的.HashMap是Hashtable的轻量 ...
- css常见的概念
padding-top:10px;是指容器内的内容距离容器的顶部有10个像素,是包含在容器内的: margin-top:10px;是指容器本身的顶部距离其他容器有10个像素,不包含在容器内: top: ...
- web开发中的一些不常见的概念
1.惊群 [活跃]星际争霸小王子 就是当你在车站时,一堆拉客的人一拥而上,想你坐他的车,于是就惊群了.但你只能坐一个车,所以没拉到你的就悻悻而归,于是return false[活跃]星际争霸小王 2 ...
- javascript面向对象系列第四篇——OOP中的常见概念
前面的话 面向对象描述了一种代码的组织结构形式——一种在软件中对真实世界中问题领域的建模方法.本文将从理论层面,介绍javascript面向对象程序程序(OOP)中一些常见的概念 对象 所谓对象,本质 ...
- SQL Server“复杂”概念之理解
用惯了Oracle的人,接触SQL Server中的概念时,会觉得比较难理解,甚至感觉有点“绕”,这是因为Oracle中将某些其他数据库中存在的概念给简化了,这里就拿两个最常见的概念来举例说明:1.s ...
- 3-C#面向对象概念
本篇博客对应视频讲解 回顾 前两篇博文带大家快速的感知一下使用C#编写程序是怎样的过程,能实现什么样的功能.同时也提到了面向对象的概念.本篇文章就是更加详细的去将面向对象编程中常见的概念进行示例说明, ...
- JavaScript面向对象当中的几个概念
JS面向对象过程中的几个概念 前言 面向对象描述的是一种代码组织解构的形式,一种在软件中对真实世界中问题领域的建模方法. 下面将从理论层面来介绍下面向对象编程中一些常见的概念. 对象 所谓对象,本质上 ...
- C++ Templates (Part I 基本概念 The Basics)
C++ 模板 (C++ Templates) 目录 C++ 模板 (C++ Templates) 第一部分 基本概念 (The Basics) 第一部分章节目录 参考资料 第一部分 基本概念 (The ...
随机推荐
- 2018-2019-1 20189206 《Linux内核原理与分析》第八周作业
#linux内核分析学习笔记 --第七章 可执行程序工作原理 学习目标:了解一个可执行程序是如何作为一个进程工作的. ELF文件 目标文件:是指由汇编产生的(*.o)文件和可执行文件. 即 可执行或可 ...
- Bitmap的秘密
作者: 周海鹏 来源: infoQ 发布时间: 2015-02-13 11:26 阅读: 4999 次 推荐: 10 原文链接 [收藏] 之前已经参加过几次QCon峰会,不过今年QCo ...
- 分类统计的controller和service
SpringMVC框架下的 部分代码: Controller控制器: @Resource ReviewTitleService reviewTitleService;//调用ReviewTitleSe ...
- Globecom 2018 投稿过程
Globecom 2018 投稿过程 IEEE 通信领域旗舰型会议 Globecom 2018 将于近日提交 Camera-Ready 稿件.回顾今年投稿过程,虽麻烦不断但也不算特别曲折,本篇随笔记录 ...
- Codeforces Round #495 (Div. 2) D. Sonya and Matrix
http://codeforces.com/contest/1004/problem/D 题意: 在n×m的方格中,选定一个点(x,y)作为中心点,该点的值为0,其余点的值为点到中心点的曼哈顿距离. ...
- Spring-AOP环绕监听出错
Exception in thread "main" org.springframework.aop.AopInvocationException: Null return val ...
- 2.nginx配置教程
1. nginx配置域名访问: 路径:vim /usr/local/nginx/conf/nginx.conf (这是我nginx的安装路径) 配置以后就不用通过ip(192.168.0.103)去访 ...
- Nginx 配置负载均衡
nginx负载均衡配置,主要是proxy_pass,upstream的使用. 注意问题,多台机器间session的共享问题. 不用session,用户cookie.或者用redis替代session. ...
- rabbitmq channel参数详解
文章转载自: https://www.cnblogs.com/piaolingzxh/p/5448927.html 部分参数说明有修改 1.Channel 1.1 channel.exchang ...
- ionic3开发ios端
ionic框架是一端开发,三端适用(android端,ios端,web端),意思是在其中一端开发的代码,拿到另外两端,代码同样生效 那现在就说一下在web端开发拿到ios端开发前需要做的事情 开发io ...