day_其他操作符的重载

#include <iostream>
#include <stdlib.h> using namespace std; class A{
public:
A(void)
{
cout << "A::A(void)" << this << endl;
}
~A(void)
{
cout << "A::~A(void)" << this << endl;
} static void* operator new(size_t size)
{
void* p = malloc(size);
cout << "A::new(size_t) p=" << p << " size=" << size << endl;
return p;
}
static void operator delete (void* p)
{
cout << "A::delete(void*) p=" << p << endl;
free(p);
}
static void* operator new[](size_t size)
{
void* p = malloc(size);
cout << "A::new[](size_t) p= " << p << " size=" <<size << endl;
return p;
}
static void operator delete[](void* p)
{
cout << "A::delete[](size_t) p= " << p << endl;
free(p);
}
private:
int m_i; //
double m_d; //
char m_c[]; //
}; int main(void)
{
A* pa = new A;
cout << "main(void) pa = " << pa << endl;
delete pa;
cout << "----------------" << endl;
pa = new A[];
//size返回3*24+4个字节,其中4个字节放数组长度
cout << "main(void) pa = " << pa << endl;
cout << ((int*)pa)[-] << endl;
delete[] pa; return ;
}



day_其他操作符的重载的更多相关文章
- 【转】c++ new操作符的重载
基本概念: 1. 操作符重载:C++支持对某个操作符赋予不同的语义 2. new操作符:申请内存,调用构造函数 关于c++ new操作符的重载 你知道c++ 的new 操作符和operator new ...
- C++ 重载操作符- 02 重载输入输出操作符
重载输入输出操作符 本篇博客主要介绍两个操作符重载.一个是 <<(输出操作符).一个是 >> (输入操作符) 现在就使用实例来学习:如何重载输入和输出操作符. #include ...
- C++中前置操作符和后置操作符的重载
1,C 语言中讨论了原生含义,C++ 中有必要考虑前置.后置操作符能够重载,有何问题: 2,值得思考的问题: 1,下面的代码有没有区别?为什么? 1,i++ // i 的值作为返回值,i 自增 1: ...
- C#操作符的重载
操作符也是可以重载的,先总结一下操作符的性质: 如我们所知,操作符在不同的情况下有不同的语义,具体取决于它所操作的类型.例如,操作符“+”在操作数值类型的时候意味着“加”,在操作字符串时意味着“连接” ...
- C++ 指针悬挂和赋值操作符的重载,拷贝构造函数实现
指针悬挂: 问题:使用new申请的内存内存空间无法访问,也无法释放. 原因:直接对指向new申请的存储空间的指针变量进行赋值修改 后果:失去了原来的地址,原来的空间无法访问也无法释放,造成内存泄漏 还 ...
- 第34课.数组操作符的重载("[]"重载)
1.问题:string类对象还具备c方式字符串的灵活性吗?还能直接访问单个字符吗? 答案:可以按照c字符串的方式使用string对象 string s = "a1b2c3d4e"; ...
- C++中 关于操作符的重载
C++实现了类的定义,也可以对类之间的操作符进行定义,又叫重载. 例如同类之间的 加.减法,赋值等等操作. 具体看http://blog.csdn.net/zhy_cheng/article/deta ...
- C++中函数调用操作符的重载
1,本博文讲述函数对象问题: 2,客户需求: 1,编写一个函数: 1,函数可以获得斐波那契数列每项的值: 2,每调用一次返回一个值: 3,函数可根据需要重复使用: 4,代码示例: ; i<; i ...
- 第37课 智能指针分析(指针特征操作符( -> 、 *)重载)
1. 永恒的话题:内存泄漏 (1)动态申请堆空间,用完后不归还 (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期------------指针是变量,可以指向内存堆空间,但是 ...
随机推荐
- 【Idea】-NO.163.Idea.2 -【How to show the horizontal scroll?】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- MySQL数据库常用命令和概念 (1)
一.数据库的创建: 1.创建一个名称为mydb1的数据库 create database mydb1; 2.创建一个使用utf8字符集的mydb2数据库. create database mydb2 ...
- 牛客(web 1)
bootstrap(Web框架) 有关换行的知识: http://www.cnblogs.com/wqsbk/p/3493948.html 关于link加载问题: link是同时加载的,script标 ...
- spring boot 热部署,省去频繁编译的步骤
一.热启动: 每自修改后, 程序自动启动Spring Application上下文. Pom中直接添加依赖即可: <dependency> <groupId&g ...
- [Atcoder SoundHound Contest 2018]E.+ Graph
题面 Time limit : 2sec / Memory limit : 1024MB Score : 600 points Problem Statement-题目描述 Kenkoooo foun ...
- UDP广播-缓冲区过小
上次介绍到了关于客户端实时刷新摄像头所识别的图片的一些方法,采用了了UDP广播的技术做处理.理论上是没有问题的,将客户端运行在不同电脑上也能很好的看到效果,运行日志也没看出啥问题,结果今天翻看日志的时 ...
- .net 中写 psql 匿名函数、过程语言
DO --关键字 $serch$ --$中间随便写, 不能用特殊符号和数字好像$ DECLARE times integer; --定义变量 rec history_depart%ROWTYPE; - ...
- Java8比较器(Lamdba)
1.首先构造一个实体以便示例使用 public class Developer { private String name; private BigDecimal salary; private in ...
- css 修改input中placeholder提示问题颜色
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: rgba(74, 87, 103, 1); ...
- flutter 读写文件
import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; import 'd ...