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. ERROR 1666 (HY000): Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.

    centos7.5 binlog恢复数据失败 问题: mysql> \. /tmp/inc.sql ERROR 1050 (42S01): Table 'new_1' already exist ...

  2. CSS的再深入5(更新中···)

    页面布局 结构层:搭我们的页面框架. 布局层:针对框架内部结构进行排版. 不需要使用浮动解决的问题尽量不用. 使用浮动之后会使该元素脱标,并且该元素的margin. div 盒子模型 : 就是一个容器 ...

  3. android to hide the keybord

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hi ...

  4. JS中for in 与 for of

    // 数组var A=[4,6,74,67]; for in:拿到的是数组下标 for (let i in A){ console.log(i); } //0,1,2,3 for of:拿到的是数组元 ...

  5. 『TensorFlow』读书笔记_多层感知机

    多层感知机 输入->线性变换->Relu激活->线性变换->Softmax分类 多层感知机将mnist的结果提升到了98%左右的水平 知识点 过拟合:采用dropout解决,本 ...

  6. openLDAP安装时无法操作根节点数据,提示的是This base cannot be created with PLA.

    1.无法操作根节点数据,提示的是This base cannot be created with PLA. 解决办法 1)添加一个base.ldif文件,里面的dc和配置文件里的保持一致即可 dn: ...

  7. DBMS_NETWORK_ACL_ADMIN (OCP 053 第七题)

    You create an access control list(ACL)using the DBMS_NETWORK_ACL_ADMIN package It is a list of users ...

  8. C/S与B/S的区别

    C/S与B/S的区别 1.区别 1.B/S架构是针对C/S架构缺点进行改进后提出的网络结构模式. B/S结构属于C/S结构,是一种特殊的C/S,因为浏览器只是特殊的客户端. 2.C/S可以使用任何通信 ...

  9. 在Postman中使用不受信任的SSL证书(转)

    add by zhj: 在http://www.cnblogs.com/ajianbeyourself/p/3898911.html中提到: 对于不受信任的证书,浏览器会发出告警,不过这些也只是告警而 ...

  10. Spring Boot + Spring Cloud 实现权限管理系统 权限控制(Shiro 注解)

    技术背景 当前,我们基于导航菜单的显示和操作按钮的禁用状态,实现了页面可见性和操作可用性的权限验证,或者叫访问控制.但这仅限于页面的显示和操作,我们的后台接口还是没有进行权限的验证,只要知道了后台的接 ...