07 2016 档案

摘要:c++中一个重要的特点就是代码的重用,为了代码重用,有两个非常重要的手段,一个是继承,一个是组合 上面两种类的关系就分别是继承和组合。下面我们看一下代码示例: 子类的成员函数操作子类的对象,父类的成员函数操作父类的对象,哪怕被继承到子类,从父类继承的成员函数也是操作的从父类继承的那部分成员变量。当然 阅读全文
posted @ 2016-07-25 19:08 阿瞒123 阅读(1733) 评论(0) 推荐(0) 编辑
摘要:当我们创建一个new表达式时,会发生两件事。首先使用operator new()分配内存,然后调用构造函数。在delete表达式里,调用了析构函数,然后使用operator delete()释放内存。我们无法控制构造函数与析构函数的调用,但是可以改变内存分配函数operator new()和oper 阅读全文
posted @ 2016-07-18 19:09 阿瞒123 阅读(567) 评论(0) 推荐(0) 编辑
摘要:首先我们来开一下这个类的内存模型。 在运行结果截图中,我们看到 阅读全文
posted @ 2016-07-16 19:22 阿瞒123 阅读(2852) 评论(0) 推荐(0) 编辑
摘要:(1)内存管理函数与内存管理运算符的区别 内存管理函数有内存分配函数,malloc calloc realloc 以及内存释放函数free。 内存管理运算符有new 和delete. 两种内存管理方式的最大区别就是malloc以及free等内存管理函数是库函数,不在编译器的控制 范围之内。并且在创建 阅读全文
posted @ 2016-07-13 18:20 阿瞒123 阅读(319) 评论(0) 推荐(0) 编辑
摘要:使用全局重载运算符而不使用成员运算符重载的最便利的原因之一是在全局版本中的自动类型转换可以针对任一操作数,而成员版本必须保证做操作数已处于正确的形式(即左操作数必须是当前类的对象)。 上面的代码要注意a+1;这句话。因为这句话把int类型的1转换成了Number类型,调用了Number(int ii 阅读全文
posted @ 2016-07-11 14:01 阿瞒123 阅读(565) 评论(0) 推荐(0) 编辑
摘要:第二种自动类型转换的方法是运算符重载,其是形式是operator 目的类型(); 这个函数通过在关键字operator后跟随想要转换到的类型的方法,将当前类型转换为希望的类型。这种形式的运算符重载是独特的,因为没有指定返回值类型,其返回值类型就是正在重载运算符的名字。 在自动类型转换技术中,构造函数 阅读全文
posted @ 2016-07-11 13:25 阿瞒123 阅读(278) 评论(0) 推荐(0) 编辑
摘要:在c/c++中,如果编译器看到一个表达式或函数调用使用了一个不适合的类型,它经常会执行一个自动类型转换,从现在的类型到所有要求的类型。在内置类型中我们经常看到例如: char c; int i=c; 上述语句就执行了自动类型转换。但是上面只是内置类型的自动类型转换,在c++中,还支持用户自定义的自动 阅读全文
posted @ 2016-07-10 22:06 阿瞒123 阅读(787) 评论(0) 推荐(0) 编辑
摘要:我们知道运算符重载函数可以选择两种形式(1)成员函数形式 (2) 全局友元函数形式。那么我们应该怎么样选择呢? 首先按照语法规定有的运算符只能由成员函数重载的运算符,例如operator[],operator=。而有些运算符既可以用成员函数重载,也可以冲全局友元函数重载,例如:++ ,——,+,—, 阅读全文
posted @ 2016-07-07 23:18 阿瞒123 阅读(246) 评论(0) 推荐(0) 编辑
摘要:在《运算符重载(一)》我们介绍了运算符重载的基本概念,以及基本形式。那么再运算符重载中,参数的传递有什么遵循的原则?返回值的类型又遵循什么原则呢?这些问题都 在这一篇文章中回答。 (1)运算符重载函数中的参数个数应该有几个 运算符重载函数的参数个数取决于两个因素。一是运算符是一元运算符还是二元运算符 阅读全文
posted @ 2016-07-01 20:28 阿瞒123 阅读(247) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示