转载c++常忘的知识点
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++常忘的知识点的更多相关文章
- 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
- 【转载】常见面试题:C#中String和string的区别分析
在很多人面试C#开发工程师的时候,会遇到一个面试题,就是C#中String和string有啥区别.其实针对这个问题C#中String和string没有本质上的区别,两者在程序中都可使用,稍微的一个区别 ...
- 常忘知识点三-使用选择器继承来精简CSS --- @extend
推荐一个很详细的sass教程:https://www.sass.hk/docs/ 在设计网页的时候常常遇到这种情况:一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式.通常会在 HTML 中 ...
- Java面试指北!13个认证授权常见面试题/知识点总结!| JavaGuide
大家好,我是 Guide哥!端午已过,又要开始工作学习啦! 我发现有很多小伙伴对认证授权方面的知识不是特别了解,搞不清 Session 认证.JWT 以及 Cookie 这些概念. 所以,根据我根据日 ...
- [转载]CSP-J/S 第一轮知识点选讲
CSP-J/S 第一轮知识点选讲 转载自这里 感谢原博主的大力整理! 信息学史及基本知识 一.信息学及计算机史 计算机的顶级奖项:图灵奖.冯·诺依曼奖 图灵奖:由ACM(美国计算机协会)设立于1966 ...
- Python常忘的进阶知识(下)
0.目录 1.装饰器 1.1 为每个函数都增加一个功能 1.2 装饰器只是一种模式 1.3 语法糖 1.4 函数需要传递参数,该如何更改装饰器? 1.5 函数需要传递关键字参数,该如何更改装饰器? 2 ...
- c++常考算法知识点汇总
前言:写这篇博客完全是给自己当做笔记用的,考虑到自己的c++基础不是很踏实,只在大一学了一学期,c++的面向对象等更深的知识也一直没去学.就是想当遇到一些比较小的知识,切不值得用一整篇 博客去记述的时 ...
- 关于Linux的常忘命令积累
1.在vim中显示行号 在/etc/vimrc里加上一行 set nu! 2./etc/sysconfig/network-scripts/ifcfg-eth0 (DNS1=192.168.1 ...
- python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题
笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...
随机推荐
- ASP.NET Web API编程——序列化与内容协商
1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据的格式.在HTTP协议中多媒体类型描述了消息体的格式.一个多媒体类型包括两个字符串:类型和子类型. 例如: text/html.image/p ...
- spring3——IOC之基于XML的依赖注入(DI )
我们知道spring容器的作用是负责对象的创建和对象间关系的维护,在上一篇博客中我们讲到spring容器会先调用对象的无参构造方法创建一个空值对象,那么接下来容器就会对对象的属性进行初始化,这个初始化 ...
- React-Native(六):React Native完整的demo项目
该项目在http://www.lcode.org/study-react-native-opensource-two/上发现 更有意思的发现这个网站https://juejin.im/是采用vue.j ...
- 实现Winform端窗体关闭后刷新html网页内容
一.首先要知道刷新网页的路径: frmPointEasyToBeat fpetBeat = new frmPointEasyToBeat(bookNoteId, userInfo.UserId); f ...
- C# Execl表格文件转xml文件
在我们的工作中可能会需要到让execl表格转换成xml文件来使用,这样程序读取数据来也比较方便 下面就写一个小程序来实现execl表格转换成xml文件来使用 会使用到的知识点如下 1:引用第三方Exe ...
- [LeetCode] Non-decreasing Array 非递减数列
Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...
- json pickle ;shelve
import json dic={'name':'alex'} """ f=open("new_hello","w") # dic ...
- MySQL的安全机制
MySQL的安全机制: 1.MySQL登录 mysql -u账户 -p密码 -h127.0.0.1 -P端口 数据库名 mysql -h hostname|hostIP -p port -u user ...
- python 简单实现淘宝关键字商品爬取
本文有2个文件 1:taobao_re_xpath 2:taobao_re_xpath_setting # 1:taobao_re_xpath # -*- coding:utf-8 -*- # aut ...
- HttpClient入门一
HttpClient是一个实现了Http协议的功能强大的编程工具包. 要使用HttpClient,通常需要以下几部: 1.常见一个HttpClient实例 2.创建一个get或者post方法 3.告诉 ...