10.如果写了operator new,就要同时写operator delete。
为什么要写自己的operator new和delete,首先这不叫重载,这叫隐藏。 new只是用来申请空间,而构造函数是在申请的空间的基础上继续初始化。
为了效率。缺省的operator new 进行内存分配是并不仅仅分配一块所需大小的内存,因为delete释放内存时要知道指针所指向内容的大小,所以,n...
分类:
编程语言 时间:
2014-10-06 22:07:40
阅读次数:
233
implicit关键字用于声明隐式的用户定义类型转换运算符。(explicit反之)explicit则用于显示转换用户自定义类型。static implicit operator target_type( source_type identifier ){......}隐式转换可以通过消除不必要的类...
分类:
其他好文 时间:
2014-10-06 20:42:10
阅读次数:
207
1、 仿函数
仿函数又名函数对象,具有函数性质的对象,就是传入一些参数,然后对参数进行某些运算,然后返回一个值。为了能够使行为类似函数,需要在类别定义中必须自定义function call 运算子operator()。
仿函数有如下几类:算术类仿函数(plus、minus)关系运算类仿函数(equal_to、less)逻辑运算类仿函数(logical_and、logical_or、logica...
分类:
其他好文 时间:
2014-10-06 16:42:50
阅读次数:
231
一.类模板
C++中可以将模板的思想应用与类,使得类可以不关注具体所操作的数据类型,而只关注类所实现的功能。
C++中的类模板
---- 提供一种特殊的类以相同的行为处理不同的类型
---- 在类声明前使用template进行标识
---- 用于说明类中使用的泛指类型T
template
class Operator
{
public:
T ...
分类:
其他好文 时间:
2014-10-06 15:03:30
阅读次数:
167
第十五章 多态性和虚函数
/**
* 书本:【ThinkingInC++】
* 功能:纯抽象类
* 时间:2014年10月6日13:10:28
* 作者:cutter_point
*/
#include
using namespace std;
enum note {middleC, Csharp, Cflat};
//创建一个抽象类
//基类
class Instrument
{
p...
分类:
编程语言 时间:
2014-10-06 15:02:20
阅读次数:
281
采用自定义的operator运算符实现自己的内存分配策略,在某些时候可以提高程序的效率。C++中的new运算符,具体工作流程如下:1.调用operator new申请原始内存2.调用place new表达式,执行类的构造函数3.返回内存地址而delete操作符的工作是:1.调用对象的析构函数2.调用...
分类:
其他好文 时间:
2014-10-05 19:54:28
阅读次数:
262
/**
* 书本:【ThinkingInC++】
* 功能:重载new和delete,来模仿内存的分配
* 时间:2014年10月5日14:30:11
* 作者:cutter_point
*/
#include //size_t这个类型的使用
#include
#include
#include
using namespace std;
ofstream out("Framis.t...
分类:
编程语言 时间:
2014-10-05 17:43:48
阅读次数:
215
一起连带前面几篇Playground小结代码都转到github上了。Swift语法主要部分差不多就这些了。当然还有泛型、运算符重载、ARC、闭包之类的补充。
一、扩展(extension)
扩展 extension(类似OC中的分类,
但Swift中没有名字), 即使在没有权限获取到原始代码的情况下,
为类增加新功能.
注意: 只要定义了扩展, 那么该扩展对该类的实例都是可用的....
分类:
移动开发 时间:
2014-10-05 09:24:58
阅读次数:
265
非成员运算符
当运算符的左侧是不同的类的时候,就不能吧运算符重载到类里面了。
IostreamOperatorOverloading.cpp
/**
* 书本:【ThinkingInC++】
* 功能:非成员运算符
* 时间:2014年10月4日14:23:25
* 作者:cutter_point
*/
//当运算符的左侧是不同的类的时候,就不能吧运算符重载到类里面了...
分类:
编程语言 时间:
2014-10-04 17:16:06
阅读次数:
288
1. 哪些不可以被重载? . .*2. 成员函数与非成员函数的运算符重载函数区别? 运算符左侧是否是类对象本身.3. a++, ++a 运算 X operator ++ (const X& x); const X& operator ++ (const X& x, int); int 参数作为哑元....
分类:
编程语言 时间:
2014-10-04 12:34:46
阅读次数:
197