delete

C++ 内存分配(new,operator new)详解

做~自己de王妃 提交于 2020-02-20 04:12:10
参考: C++ 内存分配(new,operator new)详解 如何限制对象只能建立在堆上或者栈上 new运算符和operator new() new:指我们在C++里通常用到的 运算符 ,比如A* a = new A; 对于new来说,有new和::new之分,前者位于std operator new():指对new的重载形式,它是一个 函数 ,并不是运算符。对于operator new来说, 分为全局重载和类重载 ,全局重载是void* ::operator new(size_t size),在类中重载形式 void* A::operator new(size_t size)。还要注意的是这里的operator new()完成的操作一般只是分配内存,事实上系统 默认的全局 ::operator new(size_t size)也只是调用malloc分配内存,并且返回一个void*指针 。而构造函数的调用(如果需要)是在new运算符中完成的 new和operator new之间的关系 A* a = new A;我们知道这里分为两步: 1.分配内存,2.调用A()构造对象。 事实上,分配内存这一操作就是由operator new(size_t)来完成的,如果类A重载了operator new,那么将调用A::operator new(size_t ),如果没有重载,就调用:

2.restfulAPI

做~自己de王妃 提交于 2020-02-19 14:56:46
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。 在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 原则条件 REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源

c++设计模式——单例模式

余生长醉 提交于 2020-02-19 14:02:19
单例模式 一个类只允许创建唯一的对象 禁止在类的外部创建对象:私有化构造函数:private或protected 类的内部维护唯一对象:静态成员变量 提供访问单例对象的方法:静态成员函数,返回在类内部唯一构造的实例 创建方式 饿汉式:单例对象无论用或不用,程序启动即创建。 懒汉式:单例对象在用的时候再创建,不用即销毁。 一: #include <iostream> using namespace std; class Singleton { public: static Singleton *GetInstance() { if (m_Instance == NULL ) { m_Instance = new Singleton (); } return m_Instance; } static void DestoryInstance() { if (m_Instance != NULL ) { delete m_Instance; m_Instance = NULL ; } } // This is just a operation example int GetTest() { return m_Test; } private: Singleton() { m_Test = 10; } static Singleton *m_Instance; int m_Test; };

C++笔记(from B站玄马科技)

你。 提交于 2020-02-19 04:32:29
地址: https://space.bilibili.com/477729104 bool类型 C++中的新类型(bool:0为假,非0为真) 占用的字节数(bool:1,BOOL:4) bool类型正确的使用 const常量 const用于修饰变量,将变量变为常量(常量一旦定义,就不可以修改) 编译器在程序的编译时期做的检查 默认参数 函数允许提供默认参 默认参可以写在声明或者定义处,但只能出现在一个地方,一般写在声明处 当一个参数有默认参时,该参数的右边必须都出现默认参 使用宏定义 #define TESTFoo(m,n,k) TestFoo(m,n,k,1,2,3) int TestFoo(int n1, int n2, int n3, int n4, int n5, int n6) { return 0; } 此时,TestFoo内n4, n5, n6的值将会被宏定义中的1,2,3所代替。 也可以采用以下方式 #define TESTFoo(m,n,k) TestFoo(m,n,k,1,2,3) int TestFoo(int n1, int n2, int n3, int n4 = 4, int n5 = 5, int n6 = 6) { return 0; } 此时,n4, n5, n6的值将由函数内部的形参决定,即值为4,5,6 当采用以下方式时 #define

10.spring声明式事务

时光毁灭记忆、已成空白 提交于 2020-02-19 00:27:00
一.回顾事务 事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎! 事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。 1.事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。 2.事务四个属性ACID 原子性(atomicity) 事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用 一致性(consistency) 一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足业务规则的一致性状态中 隔离性(isolation) 可能多个事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏 持久性(durability) 事务一旦完成,无论系统发生什么错误,结果都不会受到影响。通常情况下,事务的结果被写到持久化存储器中 二.Spring中的事务管理 1.测试事务的一致性 步骤:(在上一个的博客项目的基础上) 在UserMapper接口中添加两个方法 addUser:添加用户 deleteUser:删除用户 在UserMapper.xml中编写SQL语句,故意将delete写成deletes导致出错 修改UserMapperImpl类 添加addUser方法 添加deleteUser方法 修改selectUser方法,让它先添加一个用户

C++中delete和delete[]的区别

点点圈 提交于 2020-02-18 18:09:41
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。 请看下面的程序。 1 #include <iostream>; 2 using namespace std; 3 4 class T { 5 public: 6 T() { cout << "constructor" << endl; } 7 ~T() { cout << "destructor" << endl; } 8 }; 9 10 int main() 11 { 12 const int NUM = 3; 13 14 T* p1 = new T[NUM]; 15 cout << hex << p1 << endl; 16 // delete[] p1; 17 delete p1; 18 19 T* p2 = new T[NUM]; 20 cout << p2 << endl; 21 delete[] p2; 22 } 大家可以自己运行这个程序,看一看 delete p1

RESTframework简介

让人想犯罪 __ 提交于 2020-02-18 03:13:29
什么是RESTful? RESTful是一种开发理念,REST是Roy Thomas Fileding在他博文提出的.REST特点;url简洁,将参数通过url传递到服务器,简单就是说URL定位资源,用HTTP动词描述操作. RESTful架构: 每一个URL代表一种资源; 客户端和服务器之间,传递这种资源的某种表现层; 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。 URL节后不能含有动词 一般接口返回的是JSON和XML类型的,JSON一般用的多 定义接口统一,使用起来比较方便 RESTful设计方法: API接口应该部署到专用的域名下,如果API不需要扩展,可以放到主域名下,API版本号放到URL中或者放到请求头信息中,路径就是表示API的具体网站,每个网站都有对应的资源,API中的名词应该使用复数, 常见的HTTP的动词 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 DELETE(DELETE):从服务器删除资源。 不常用的HTTP动词 PATCH(UPDATE):在服务器更新(更新)资源(客户端提供改变的属性)。 HEAD:获取资源的元数据。 OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

孤街醉人 提交于 2020-02-17 18:21:51
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。 1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅: http://www.verysimple.com/blog/?p=57 2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)。如果其中一个不是primary key的话,你必须先为它创建一个索引。 3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。 4. 外键的名字不能重复。你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。 5. 你可能设置了ON DELETE SET NULL,但是相关的键的字段又设置成了NOTS NULL值

MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

风流意气都作罢 提交于 2020-02-17 17:56:14
MySQL有两种常用的引擎类型:MyISAM和InnoDB。目前只有InnoDB引擎类型支持外键约束。InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) REFERENCES tbl_name (index_col_name,...) [ON DELETE reference_option] [ON UPDATE reference_option] 例如: ALTER TABLE `user_resource` CONSTRAINT `FKEEAF1E02D82D57F9` FOREIGN KEY (`user_Id`) REFERENCES `sys_user` (`Id`) InnoDB也支持使用ALTER TABLE来删除外键: ALTER TABLE `user_resource` DROP FOREIGN KEY `FKEEAF1E02D82D57F9`; CASCADE 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 SET NULL 在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)

SpringMVC学习之REST风格

天涯浪子 提交于 2020-02-16 23:36:35
1.REST风格简单的说就是HTTP协议里面,四个表示操作方式的动词:GET,POST,PUT,DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。 2.因为在jsp中没有delete方法和put方法。所以你在jsp文件中发送请求时,需要发送post请求,并且设置_mthod参数为delete或put(get和post请求直接发送即可): 还需要配置filter对他们_method进行拦截,改变请求形式: 在控制器中对请求接收,并返回值: 高版本的Tomcat会抛出异常 你只需要在返回的jsp页面中设置isErrorPage=true,来接收这些异常不让它报错。 来源: CSDN 作者: 在这之间 链接: https://blog.csdn.net/a_killer_/article/details/104346410