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. ASP.NET Web API编程——序列化与内容协商

    1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据的格式.在HTTP协议中多媒体类型描述了消息体的格式.一个多媒体类型包括两个字符串:类型和子类型. 例如: text/html.image/p ...

  2. spring3——IOC之基于XML的依赖注入(DI )

    我们知道spring容器的作用是负责对象的创建和对象间关系的维护,在上一篇博客中我们讲到spring容器会先调用对象的无参构造方法创建一个空值对象,那么接下来容器就会对对象的属性进行初始化,这个初始化 ...

  3. React-Native(六):React Native完整的demo项目

    该项目在http://www.lcode.org/study-react-native-opensource-two/上发现 更有意思的发现这个网站https://juejin.im/是采用vue.j ...

  4. 实现Winform端窗体关闭后刷新html网页内容

    一.首先要知道刷新网页的路径: frmPointEasyToBeat fpetBeat = new frmPointEasyToBeat(bookNoteId, userInfo.UserId); f ...

  5. C# Execl表格文件转xml文件

    在我们的工作中可能会需要到让execl表格转换成xml文件来使用,这样程序读取数据来也比较方便 下面就写一个小程序来实现execl表格转换成xml文件来使用 会使用到的知识点如下 1:引用第三方Exe ...

  6. [LeetCode] Non-decreasing Array 非递减数列

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...

  7. json pickle ;shelve

    import json dic={'name':'alex'} """ f=open("new_hello","w") # dic ...

  8. MySQL的安全机制

    MySQL的安全机制: 1.MySQL登录 mysql -u账户 -p密码 -h127.0.0.1 -P端口 数据库名 mysql -h hostname|hostIP -p port -u user ...

  9. python 简单实现淘宝关键字商品爬取

    本文有2个文件 1:taobao_re_xpath 2:taobao_re_xpath_setting # 1:taobao_re_xpath # -*- coding:utf-8 -*- # aut ...

  10. HttpClient入门一

    HttpClient是一个实现了Http协议的功能强大的编程工具包. 要使用HttpClient,通常需要以下几部: 1.常见一个HttpClient实例 2.创建一个get或者post方法 3.告诉 ...