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++常见的概念的更多相关文章

  1. C#常见的概念阐述

    在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...

  2. Java面试常见各种概念区别比较

    Hashtable 和 HashMap之间的区别 Hashtable是继承了Dictionary,是线程安全的.HashMap实现了Map接口,不是线程安全的.HashMap是Hashtable的轻量 ...

  3. css常见的概念

    padding-top:10px;是指容器内的内容距离容器的顶部有10个像素,是包含在容器内的: margin-top:10px;是指容器本身的顶部距离其他容器有10个像素,不包含在容器内: top: ...

  4. web开发中的一些不常见的概念

    1.惊群  [活跃]星际争霸小王子 就是当你在车站时,一堆拉客的人一拥而上,想你坐他的车,于是就惊群了.但你只能坐一个车,所以没拉到你的就悻悻而归,于是return false[活跃]星际争霸小王 2 ...

  5. javascript面向对象系列第四篇——OOP中的常见概念

    前面的话 面向对象描述了一种代码的组织结构形式——一种在软件中对真实世界中问题领域的建模方法.本文将从理论层面,介绍javascript面向对象程序程序(OOP)中一些常见的概念 对象 所谓对象,本质 ...

  6. SQL Server“复杂”概念之理解

    用惯了Oracle的人,接触SQL Server中的概念时,会觉得比较难理解,甚至感觉有点“绕”,这是因为Oracle中将某些其他数据库中存在的概念给简化了,这里就拿两个最常见的概念来举例说明:1.s ...

  7. 3-C#面向对象概念

    本篇博客对应视频讲解 回顾 前两篇博文带大家快速的感知一下使用C#编写程序是怎样的过程,能实现什么样的功能.同时也提到了面向对象的概念.本篇文章就是更加详细的去将面向对象编程中常见的概念进行示例说明, ...

  8. JavaScript面向对象当中的几个概念

    JS面向对象过程中的几个概念 前言 面向对象描述的是一种代码组织解构的形式,一种在软件中对真实世界中问题领域的建模方法. 下面将从理论层面来介绍下面向对象编程中一些常见的概念. 对象 所谓对象,本质上 ...

  9. C++ Templates (Part I 基本概念 The Basics)

    C++ 模板 (C++ Templates) 目录 C++ 模板 (C++ Templates) 第一部分 基本概念 (The Basics) 第一部分章节目录 参考资料 第一部分 基本概念 (The ...

随机推荐

  1. 剑指offer(50)数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  2. urllib3

    urllib3是一个功能强大.条理清晰.用于http客户端的python库,相对于urllib它所有的特点如下: 线程安全 连接池 客户端SSL/TLS验证 使用多部分编码上传文件 Helpers用于 ...

  3. Learning-MySQL【3】:数据类型和运算符

    一.数据类型 1.数值类型 为每张表的每个字段选择合适的数据类型是数据库设计过程中一个重要的步骤. 数字分为整数和小数.其中整数用整数类型表示,小数用浮点数类型和定点数类型表示. 浮点数类型包括单精度 ...

  4. 进程池 和 multiprocessing.Pool模块

    进程池的概念 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁 ...

  5. CSS--交互效果

    动画过渡效果 //vue <div class="search-list" v-show="searches.length"> <transi ...

  6. StringRedisTemplate常用API

    转载自网络: //向redis里存入数据和设置缓存时间stringRedisTemplate.opsForValue().set("test", "100",6 ...

  7. JAVA-抽象类/类继承

    1.当一个类继承一个抽象类的时候,必须实现抽象类的方法.如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类. 2.被final修饰的类为最终类,不能被继承.而类前面如果有abstr ...

  8. BluetoothGattCallback

    /** * 用于实现 BluetoothGatt 的回调 */public abstract class BluetoothGattCallback { /** * GATT客户端连接或断开到远程的时 ...

  9. python实现http get请求

    接口请求方式为get请求,如下图抓包查看 Python实现脚本请求接口并以中文打印接口返回的数据 import urllib.parse import urllib.request url = &qu ...

  10. C# 创建对象的方法

    1.实例化方法,也就是new(): //where T:new () 表示T必须有构造函数 public static T Create<T> where T:new () { retur ...