day_其他操作符的重载

时间:2022-05-20 10:20:31

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_其他操作符的重载

day_其他操作符的重载

day_其他操作符的重载

day_其他操作符的重载的更多相关文章

  1. 【转】c&plus;&plus; new操作符的重载

    基本概念: 1. 操作符重载:C++支持对某个操作符赋予不同的语义 2. new操作符:申请内存,调用构造函数 关于c++ new操作符的重载 你知道c++ 的new 操作符和operator new ...

  2. C&plus;&plus; 重载操作符- 02 重载输入输出操作符

    重载输入输出操作符 本篇博客主要介绍两个操作符重载.一个是 <<(输出操作符).一个是 >> (输入操作符) 现在就使用实例来学习:如何重载输入和输出操作符. #include ...

  3. C&plus;&plus;中前置操作符和后置操作符的重载

    1,C 语言中讨论了原生含义,C++ 中有必要考虑前置.后置操作符能够重载,有何问题: 2,值得思考的问题: 1,下面的代码有没有区别?为什么? 1,i++  // i 的值作为返回值,i 自增 1: ...

  4. C&num;操作符的重载

    操作符也是可以重载的,先总结一下操作符的性质: 如我们所知,操作符在不同的情况下有不同的语义,具体取决于它所操作的类型.例如,操作符“+”在操作数值类型的时候意味着“加”,在操作字符串时意味着“连接” ...

  5. C&plus;&plus; 指针悬挂和赋值操作符的重载&comma;拷贝构造函数实现

    指针悬挂: 问题:使用new申请的内存内存空间无法访问,也无法释放. 原因:直接对指向new申请的存储空间的指针变量进行赋值修改 后果:失去了原来的地址,原来的空间无法访问也无法释放,造成内存泄漏 还 ...

  6. 第34课&period;数组操作符的重载(&quot&semi;&lbrack;&rsqb;&quot&semi;重载)

    1.问题:string类对象还具备c方式字符串的灵活性吗?还能直接访问单个字符吗? 答案:可以按照c字符串的方式使用string对象 string s = "a1b2c3d4e"; ...

  7. C&plus;&plus;中 关于操作符的重载

    C++实现了类的定义,也可以对类之间的操作符进行定义,又叫重载. 例如同类之间的 加.减法,赋值等等操作. 具体看http://blog.csdn.net/zhy_cheng/article/deta ...

  8. C&plus;&plus;中函数调用操作符的重载

    1,本博文讲述函数对象问题: 2,客户需求: 1,编写一个函数: 1,函数可以获得斐波那契数列每项的值: 2,每调用一次返回一个值: 3,函数可根据需要重复使用: 4,代码示例: ; i<; i ...

  9. 第37课 智能指针分析(指针特征操作符&lpar; -&gt&semi; 、 &ast;&rpar;重载)

    1. 永恒的话题:内存泄漏 (1)动态申请堆空间,用完后不归还 (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期------------指针是变量,可以指向内存堆空间,但是 ...

随机推荐

  1. linux bash &amp&semi; profile &amp&semi;bash&lowbar;profile 小结

    login 方式:: su - oracle 依次 /etc/bash.bashrc———— /home/$user/.bashrc ———— /ect/profile ———— /home/$use ...

  2. NEFU 504 new Flip Game &lpar;高斯消元&rpar;

    题目链接 题解:和 poj1753Filp game 差不多,区别在于t组数据并且翻转的时候多了一个左上角. #include <iostream> #include <cstdio ...

  3. TCP三次握手及四次挥手详细图解

    TCP三次握手及四次挥手详细图解 Andrew Huangbluedrum@163.com    相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不 ...

  4. DMA-330&lpar;二&rpar;

    DMA内部的block diagram: DMAC包含一个instruction processing block,来process program code,control DMA transfer ...

  5. ajax向前台输出二维数组 并解析

    最近在弄一个售后数据统计的功能,里边需要统计特定时期内各种客户.机型的分布比例,单单table来计算并显示很死板(一点也不酷) 于是决定用jquery插件flot并通过ajax传输数据 :flot的折 ...

  6. BZOJ 3511 土地划分

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3511 题目分析: 看上去和前面的人员雇佣以及小M种田都很像. 最小割模型来求最大值,一般都 ...

  7. 判断一个字符串在至多删除k个字符后是否为回文串

    转自: http://www.careercup.com/question?id=6287528252407808 问题描述: A k-palindrome is a string which tra ...

  8. C&plus;&plus;赋值运算符函数

    为类添加赋值运算符函数: 类型定义 class CMyString { public: CMyString(char *pData = NULL); CMyString(const CMyString ...

  9. 给UIImage添加蒙版

    http://*.com/questions/17448102/ios-masking-an-image-keeping-retina-scale-factor-in-acco ...

  10. 谈谈Circuit Breaker在&period;NET Core中的简单应用

    前言 由于微服务的盛行,不少公司都将原来细粒度比较大的服务拆分成多个小的服务,让每个小服务做好自己的事即可. 经过拆分之后,就避免不了服务之间的相互调用问题!如果调用没有处理好,就有可能造成整个系统的 ...