C++的一些知识点比较零碎,下面清单的形式做一些记录与归纳,以供参考。

1、赋值操作符重载(深复制):

  (1)由于目标对象可能引用了以前的一些数据,所以应该先delete这些数据;

  (2)注意到对象可能对自己赋值,所以应该加上下面语句(another表示另一个对象),再进行(1)的操作:

    

  (3)函数返回一个指向调用对象的引用;

(4)赋值操作符只能通过成员函数重载。

2、静态类成员函数:

 (1)静态类成员函数在类的声明中要加static关键字,而在定义中则不用;

 (2)静态类成员函数没用this指针;

(3)如果静态类成员函数是在公有部分中声明,则可以使用类名和域解析操作符来调用它。

3、构造函数中new的使用:

 (1)如果在构造函数中使用了new来初始化指针成员,则应该在析构函数中使用delete;

 (2)new和delete需对应,new对应delete,new[]对应delete[];

 (3)如果有多个构造函数,则必须使用相同的方式调用new,要么都是new,要么都是new[],因为析构函数只有一个,因此所有的构造函数都应该和它兼容。

4、有关函数返回对象:

 (1)返回const对象的引用:

    <1>返回对象会调用复制构造函数,而返回对象的调用则不会,因此效率会有所提高;

    <2>引用指向的对象应该在函数执行时存在。

 (2)返回非const对象的引用,一般有两种情况:

    <1>重载赋值操作符,使其能够连续赋值;

    <2>重载与cout一起使用的<<操作符,使其能够串接输出,返回形式为: ostream & 。

 (3)返回非const对象:

    假如返回的对象是函数中的局部变量,则不能返回引用,而应返回对象,因为函数执行完局部变量会被销毁,引用将会失效,而返回对象则会调用复制构造函数,生成临时对象。

5、指针与对象小结:

  (1)常规声明方法:

        MyVector *p;

  (2)可以将指针初始化为指向已有的对象:

       MyVector *p = & array[0];

  (3)使用new并通过调用类的构造函数来初始化指针,这将创建一个新的对象:
      MyVector *p = new MyVector(0,0,0);

6、析构函数的调用:

  (1)如果对象是动态变量,那么当函数执行完定义该对象的程序块时,将调用其析构函数;

  (2)如果对象是静态变量,则在程序结束时会调用其析构函数;

  (3)如果对象是通过new创建的,只当显示使用delete删除对象时才会调用析构函数。

7、成员初始化列表:
  构造函数可用成员列表为方法对成员数据进行初始化。例如:

  

  (1)这种格式只能运用于构造函数中;

  (2)必须使用这种方法来初始化非静态const数据成员;

  (3)必须使用这种方法来初始化引用数据成员。

    //To be continued.

转载c++常忘的知识点的更多相关文章

  1. 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token

    为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...

  2. 【转载】常见面试题:C#中String和string的区别分析

    在很多人面试C#开发工程师的时候,会遇到一个面试题,就是C#中String和string有啥区别.其实针对这个问题C#中String和string没有本质上的区别,两者在程序中都可使用,稍微的一个区别 ...

  3. 常忘知识点三-使用选择器继承来精简CSS --- @extend

    推荐一个很详细的sass教程:https://www.sass.hk/docs/ 在设计网页的时候常常遇到这种情况:一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式.通常会在 HTML 中 ...

  4. Java面试指北!13个认证授权常见面试题/知识点总结!| JavaGuide

    大家好,我是 Guide哥!端午已过,又要开始工作学习啦! 我发现有很多小伙伴对认证授权方面的知识不是特别了解,搞不清 Session 认证.JWT 以及 Cookie 这些概念. 所以,根据我根据日 ...

  5. [转载]CSP-J/S 第一轮知识点选讲

    CSP-J/S 第一轮知识点选讲 转载自这里 感谢原博主的大力整理! 信息学史及基本知识 一.信息学及计算机史 计算机的顶级奖项:图灵奖.冯·诺依曼奖 图灵奖:由ACM(美国计算机协会)设立于1966 ...

  6. Python常忘的进阶知识(下)

    0.目录 1.装饰器 1.1 为每个函数都增加一个功能 1.2 装饰器只是一种模式 1.3 语法糖 1.4 函数需要传递参数,该如何更改装饰器? 1.5 函数需要传递关键字参数,该如何更改装饰器? 2 ...

  7. c++常考算法知识点汇总

    前言:写这篇博客完全是给自己当做笔记用的,考虑到自己的c++基础不是很踏实,只在大一学了一学期,c++的面向对象等更深的知识也一直没去学.就是想当遇到一些比较小的知识,切不值得用一整篇 博客去记述的时 ...

  8. 关于Linux的常忘命令积累

    1.在vim中显示行号  在/etc/vimrc里加上一行   set nu! 2./etc/sysconfig/network-scripts/ifcfg-eth0  (DNS1=192.168.1 ...

  9. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

随机推荐

  1. vue2.0+koa2+mongodb实现注册登录

    前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道 ...

  2. SQL Server 利用触发器对多表视图进行更新

    其步骤就是:利用update操作触发器产生的2个虚拟表[inserted]用来存储修改的数据信息和[deleted]表,然后将对应的数据更新到对应数据表中的字段信息中: 1.首先创建3个表: a.信息 ...

  3. Python入门之函数的装饰器

    本章目录: 装饰器: 一.为什么要用装饰器 二.什么是装饰器 三.无参装饰器 四.装饰器语法糖 五.认证装饰器实现 六.叠加多个装饰器 七.带参装饰器 ======================== ...

  4. I/O和管道

    一:I/O设备 I/O(Input/Output),即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出. 标准输入(STDIN):0 默认接受来自键盘的输入 标准输出(ST ...

  5. spark2.1:在RDD[unit].foreach(s=>{})内部调用sparkSession对象抛出NullPointException

    问题代码: val sample_data_combine_result=List( (0,(List(FitModel(4022,1447.92,-8.38983306721434,2.0),Fit ...

  6. wpf的tab移动焦点只能在容器内部使用

    设置 KeyboardNavigation.TabNavigation="Cycle" 即可

  7. js中call和apply的用法

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  8. Win10 VS2012 无法注册IIS4.0 解决方案

    死活注册不上,度娘也找了,最终找到只要打个补丁就行. 安装: Microsoft Visual Studio 2012 更新 (KB3002339) 下载:http://www.microsoft.c ...

  9. vue-cli 去掉严格模式:

    vue-cli 去掉严格模式: 在根目录中找到 .eslintignore 文件,添加 严格模式需要监听的目录 src/*

  10. IO流大总结

    - - - - - - - - - - - - - - - 写在前面 - - - - - - - - - - - - - - - 1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过 ...