1.面向过程是:数据与操作分离,数据容易被意外修改

2.面向过程通过私有化的权限进行数据封装

3.类型后辍:类名 operator “” _XXXX(int data)  增加后缀

{

Return {(unsigned int)data};大括号给结构体初始化

传进来的参数要和原数据类型一致的参数类型一致

}

Operator””属于文件运算符(char,wchar_t,char16_t,char32_t,unsigned long long)

文本后缀只能放在外部

走法:为类赋值的时候,要的一种格式,然后内部通过operator “” _XXXX(int data)的返回值进行转换

4.auto*p=nullptr;不可以

auto xx=new auto(1)    xx为int*,对应类型的指针

auto的推到是从左向右

auto不适用于数组

auto可以指向一个数组

5.用lambda做递归的时候捕获列表要是&    [&](){}

一般都是用函数包装器把lambda进行包装再调用,毕竟lambda是匿名函数

6._func_取出函数名的宏

对于函数重载了得,在调用的时候一定要明确调用哪一个

7.对于一个函数名而言,add,*add,&add地址都是一样的(调用的时候都打括号)

8.对函数指针decltype只是把函数头获取了,并没有获取函数实体,需要进行初始化

因为函数代码被优化成了共享,尽量避免拷贝浪费一模一样的函数,代码块肯定是需要共享的,

所以必须是引用或者指针类型才可以完整的实例化函数指针(就是浅拷贝的感觉)

9.nullptr不是指针类型,自定义的一个类型表示空指针

10.指针数组:

int*p = new int[10];指向一维数组的指针

int **pp = new int *[10];指向一维数组指针的二维指针(行指针)

int(*px)[4] = (int(*)[4]) new int[20];二维数组,四个数组,每个里面5个

int *(*py)[4] =(int *(*)[4]) new int *[20];

11.每一个N级指针都可以开辟n-1级指针数组

12.对多维数组与多重指针的深入总结:

Int***ppp初始化好了之后,是从外往里走的

13.共用体里面是不能放类,new(&str)string,调用string的构造函数,析构:str.~basic_string()

Union内部如果有自定义的类有自己的构造函数,union使他原来的构造析构定义为删除的,必须自己实现

14.原则上struct只要new的时候,都需要有构造函数,引用其他的类,基本构造函数就要重写

15.<retio>分数 ratio<1,2> er 这个是一种类型    den分母,num分子

16. 委托构造的好处:

1.可以分工明确,让一个专门的构造函数去负责开辟内存,别的负责其他任务

2.实现封装,可以把最总体的那个权限设为private,别的晓得作为借口

17.函数模板

1.模板是数值:

一般作为一个特定的值,传入到函数中,这个值总在变化,但是用的很多。

必须把书放进去

2.模板是类型:

通用版,一般都是根据数据进行推断,

要用函数模板初始化一个函数指针的时候,类型必须是确定的

用模板赋值的时候,要么有值可以推断,要么你就<>特例化模板

总结就是:判断模板加不加<>的依据就是,在使用的时候模板的类型一定要是可推断的,要么你就必须给了

18. int(*px)[4] = (int(*)[4]) new int[20];    可以

int(*px)[4] = new int[20];不行

对于一片内存来说:类型的不一样就伴随着解析方式的不同,必要的时候需要强转

C++学习-7的更多相关文章

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  10. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

随机推荐

  1. Spring Data与elasticsearch版本对应关系

  2. 【netty这点事儿】ByteBuf 的使用模式

    堆缓冲区 最常用的 ByteBuf 模式是将数据存储在 JVM 的堆空间中. 这种模式被称为支撑数组(backing array), 它能在没有使用池化的情况下提供快速的分配和释放. 直接缓冲区 直接 ...

  3. 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题

    layout: post title: 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题 key: 20180303 tags: GIT 版本管理 modify_date: 2 ...

  4. Jenkins系列——使用checkstyle进行代码规范检查【升级版】

    1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...

  5. Android开发——fragment中数据传递与刷新UI(更改控件)

    数据传递: 1.通过数据库进行数据的传递 如在fragment中将数据保存在数据库中,之后其他的fragment或者activity直接读取数据库中的数据,数据库使用还算简单,这里就不多说,建议使用l ...

  6. Http协议规范及格式

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客户 ...

  7. Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用

    K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更 ...

  8. @restcontroller与@controller的区别

    这段时间偷偷看了下spring boot.结果引用模板时没注意,把@restcontroller替换了@controlle,结果模板出不来.终究原因是spring的知识不到位. 下面说说这2的说明和区 ...

  9. dm642的中断定时器

    TIMER_Handle TimerHandle0; void timer1() { ////////////定时器///////////////////////  TimerHandle0 = TI ...

  10. 【javascript】jquery jsonp跨越请求

    <html> <head> <meta charset="utf-8"> <title></title> <scr ...