C++细节系列(零):零散记录

老规矩:记录细节,等待空余,再进行整理。

 

1:const,static,const static成员初始化。

  1、const成员:只能在构造函数后的初始化列表中初始化

  2、static成员:初始化在类外,且不加static修饰。

  3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化。

2:拷贝赋值函数  和 拷贝构造函数。

  1,拷贝赋值函数.

    1)返回值是 左侧类型的引用。

  2,拷贝构造函数。

    1,通常的主体功能应该为:复制所有非static的类成员。

    2,系统会默认构造。但尽量自行完成(除非类复制很简单)。

    3,参数必须为引用。否则会导致递归调用,最终崩溃。

  3,拷贝赋值函数  和 拷贝构造函数 是相互需要的。即:如果需要定义拷贝赋值函数就必须定义拷贝构造函数。反之亦然。

3:explicit关键字。

  1,标识此关键字的构造函数,必须显示使用。无法隐式调用。

4:析构函数。

  1,析构函数函数体内并不进行类成员的销毁。而是当析构函数体完成后,再销毁成员。

  2,对于指针,销毁功能仅销毁指针本身,并不销毁指针指向的对象。所以,需要在析构函数中对指针进行delete/free

  3,在原则上,一个类拥有析构函数,那就应该也拥有自己的拷贝构造函数和拷贝赋值函数。

5:移动函数。

  1,分为移动函数 和 移动赋值函数。

  2,移动函数(包括赋值)特点:“偷窃”源对象的数据。会导致源对象进入一种不可预测的情况。

  3,移动函数的使用会提升运行效率。但需要注意,如果“偷窃”数据后的对象,依然会被其他线程和函数引用,会导致不可预测的错误。

转载于:https://www.cnblogs.com/zheng39562/p/4308482.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java js highcharts_Highcharts.js -纯javasctipt图表库初体验

一.highcharts简介以及引入highcharts作为免费提供给个人学习、个人网站和非商业用途使用的前端图表演示插件的确使用起来十分方便和轻便。在我最近完成一个需求的时候用到了它, 它的兼容性也很强,其在标准(W3C标准)浏览器中使用SVG技术渲染图形&#xf…

PHP:class const

const变量经常被当做常量用在php的类中&#xff0c;隐含的意思是这个变量是常量&#xff0c;不能被修改。编译器会自动检测&#xff0c;如果被赋值会被提示错误警告。 正确实例1&#xff1a; <?php class test {const ERRNO 100; } echo test::ERRNO."\n"; 输出…

java web核心知识_JAVA web 相关知识点

1&#xff1a; web的三个核心标准&#xff1a;URL&#xff1a; http VS httpsHTTP: 通信协议&#xff0c;客户端&#xff0f;服务器端信息交互方式; 特点是无状态&#xff1b;HTML:2: HTTP 协议&#xff1a;http是通用的&#xff0c;无状态的&#xff0c;面向对象的协议。H…

20135127陶俊杰 实验一

北京电子科技学院(BESTI) 《Java程序设计》课实验报告 班 级&#xff1a;201351 姓名及学号&#xff1a;陶俊杰 20135127 指导教师&#xff1a;娄佳鹏 必修/选修&#xff1a;选修 实验日期&#xff1a; 2015年4月16日 实验时间&…

2014.3.12-C语言小测试

测试代码&#xff1a; 学号:14020491.请实现一个函数&#xff0c;功能为使用循环输出以下的图案void print_alpha(int n) {int i, j;for(i0;i<n;i){for(j0;j<i;j)printf("%c", A j);printf("\n");} }2.请实现一个函数&#xff0c;功能为删除数组指定…

seqlist插入java_大话数据结构(五)(java程序)——顺序存储结构的插入与删除...

获得元素操作对于线性表的顺序存储结构来说&#xff0c;我们要实现getElement操作&#xff0c;即将线性表的第i个位置元素返回即可插入操作插入算法思路&#xff1a;1、如果插入位置不合理&#xff0c;抛出异常2、如果插入表的长度大于等于数组长度&#xff0c;则抛出异常或动态…

142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Craking interview书上原题&#xff0c;快慢指针&#xff0c;话题较简单说明。 /** * Definition for singly-lin…

无法嵌入互操作类型ESRI.ArcGIS.Carto.MapDocumentClass.请改用适用的接口

在对地图文档进行操作时&#xff0c;居然出现如下问题&#xff1a; IMapDocument m_MapDocument new ESRI.ArcGIS.Carto.MapDocumentClass(); 报错: 无法嵌入互操作类型"ESRI.ArcGIS.Carto.MapDocumentClass".请改用适用的接口. 解决方案如下&#xff1a; 解决方案—…

java文件定时读写_java定时任务及日志的使用

需要引入日志的两个架包&#xff1a;log4j.jar和commons-logging.jarpackage com.lzl;import java.util.TimerTask;import org.apache.log4j.Logger;import com.sun.org.apache.commons.logging.Log;import com.sun.org.apache.commons.logging.LogFactory;public class MyTask…

Google Code Jam 2015 Round 1A Haircut 二分

题意&#xff1a;给你每个理发师的理发时间&#xff0c;问你排在队列中的第N个位置&#xff0c;问你应该被哪个理发师剪发。 解题思路&#xff1a;二分时间&#xff0c;看这个时间到第几个人理发了&#xff0c;然后找到临界值&#xff0c;看这个值的时候有那些理发师接待了新旅…

java编写科赫曲线_matlab绘制peano(皮亚诺)曲线和koch(科赫曲线,雪花曲线)分形曲线...

koch曲线matlab plot函数绘制koch曲线程序&#xff0c;程序还是比较简单的&#xff0c;这里只绘制出了雪花的三分之一function koch_curve(number)%number代表koch的阶数&#xff0c;范围为大于等于2figureset(gcf,position,[0,0,1920,1080]);%设置窗口分辨率&#xff0c;[0,0]…

ajax翻页效果模仿yii框架

ajax翻页效果模仿yii框架 ajax翻页效果&#xff0c;模仿yii框架。 复制代码代码如下:<!DOCTYPE html> <html> <head> <title>ajax分页_www.jbxue.com</title> <script src"http://code.jquery.com/jquery-1.11.0.min.js"></s…

JAVA异常处理、常用类、反射、集合

异常 异常&#xff1a;在Java中是指被一个方法抛出的对象。 分类&#xff1a;检查异常、运行时异常、错误 运行时异常&#xff08;uncheckd&#xff09;&#xff1a;RuntimeException和其子类 检查异常&#xff08;checkd/搜检异常&#xff09;&#xff1a;指Exception和其子类…

Base64 百科词条

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64&#xff0c;所以每6个位元为一个单元&#xff0c;对应某个可打印字符。三个字节有24个位元&#xff0c;对应于4个Base64单元&#xff0c;即3个字节需要用4个可打印字符来表示。它可用来作为电子…

java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划

好程序员Java学习路线之MySQL的执行计划。什么是执行计划&#xff1f;执行计划通常是开发者优化SQL语句的第一步。MySQL在解析SQL语句时&#xff0c;会生成多套执行方案&#xff0c;然后内部会进行一个成本的计算&#xff0c;然后通过优化器选择一个最优的方案执行&#xff0c;…

Web系统开发构架再思考-前后端的完全分离

前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开发人员都深有感触. 由于最近几年一直在MS平台,从Web Form到MVC,MS平台虽然易用好学,…

C++程序设计基础

01 1 预编译常用的有&#xff0c;宏定义和包含库。2 库&#xff1a;是实用工具的集和&#xff0c;由程序员编写&#xff0c;可以完成一些特定的功能。3 <> 系统库 ""用户自定义库。4 宏定义&#xff1a;定义符号常量&#xff0c;符号常量就是给常量取的名字。常…

文科思维Java_开源之Processing:这好玩的编程语言是为文科生艺术家准备的

说起编程语言&#xff0c;我们很多时候第一反应就是很难&#xff0c;都是理工科计算机相关行业的人才学的&#xff0c;都是为理科生掉头发准备的。的确&#xff0c;计算机的严谨&#xff0c;注定要求开发应用的人有缜密的理工科的理性逻辑思维&#xff0c;然而一人客从另一方面…

第一章导言的笔记与思考

Writer&#xff1a;BYSocket&#xff08;泥沙砖瓦浆木匠&#xff09; 微博&#xff1a;BYSocket 豆瓣&#xff1a;BYSocket ~&#xff1a;较重要 ~~&#xff1a;重要 1.1 hello&#xff0c;world ~初学人来说还是一大障碍&#xff0c;手写编写程序文本&#xff0c;然后成功的进…

C 和 Object- C 中得 #ifdef 和#ifndef

很多宏是为了进行条件编译。一般情况下&#xff0c;源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译&#xff0c;也就是对一部分内容指定编译的条件&#xff0c;这就是“条件编译”。有时&#xff0c;希望当满足某条件时对一组语句进行编…