- 博客(5)
- 资源 (35)
- 收藏
- 关注
转载 二元运算符重载 must take either zero or one argument
<br /><br />编译报错:rmb::operator+(rmb&, rmb&)' must take either zero or one argument<br />用成员方式重载运算符, 不能改变参数的个数 <br /> 二元运算符用成员重载时, 只需要一个参数, 另一个参数由this指针传入 <br /> 所以, 像<br />rmb::operator+(rmb&, rmb&) <br /> 都要改成 <br />rmb::operator+(rmb&) <br
2010-12-10 07:47:00 4522
原创 如果不想使用隐式生成的函数就要显式地禁止它
<br /> <br /> 如果不想使用隐式生成的函数就要显式地禁止它<br /> <br />假设想写一个类模板Array,它所生成的类除了可以进行上下限检查外,其它行为和C++标准数组一样。设计中面临的一个问题是怎么禁止掉Array对象之间的赋值操作,因为对标准C++数组来说赋值是不合法的:<br />double values1[10];<br />double values2[10];<br />values1 = values2; // 错误!<br />对很多函数
2010-12-08 14:40:00 724
原创 尽量用“传引用”而不用“传值”
<br /> <br /> 尽量用“传引用”而不用“传值”<br /> <br />c语言中,什么都是通过传值来实现的,c++继承了这一传统并将它作为默认方式。除非明确指定,函数的形参总是通过“实参的拷贝”来初始化的,函数的调用者得到的也是函数返回值的拷贝。<br />正如我在本书的导言中所指出的,“通过值来传递一个对象”的具体含义是由这个对象的类的拷贝构造函数定义的。这使得传值成为一种非常昂贵的操作。例如,看下面这个(只是假想的)类的结构:<br />class person {<br />public:
2010-12-06 12:37:00 826
原创 让operator=返回*this的引用
<br /> <br /> 让operator=返回*this的引用<br /> <br />c++的设计者bjarne stroustrup下了很大的功夫想使用户自定义类型尽可能地和固定类型的工作方式相似。这就是为什么你可以重载运算符,写类型转换函数,控制赋值和拷贝构造函数,等等。他做了这么多努力,那你最少也该继续做下去。<br />让我们看看赋值。用固定类型的情况下,赋值操作可以象下面这样链起来:int w, x, y, z; w = x = y = z = 0; <br />所以,你也应该可以
2010-12-05 19:07:00 9305 2
原创 为需要动态分配内存的类声明一个拷贝构造函数和赋值操作符
<br /> <br /><br /><br />构造函数,析构函数和赋值操作符<br />几乎所有的类都有一个或多个构造函数,一个析构函数和一个赋值操作符。这没什么奇怪的,因为它们提供的都是一些最基本的功能。构造函数控制对象生成时的基本操作,并保证对象被初始化;析构函数摧毁一个对象并保证它被彻底清除;赋值操作符则给对象一个新的值。在这些函数上出错就会给整个类带来无尽的负面影响,所以一定要保证其正确性。本章我将指导如何用这些函数来搭建一个结构良好的类的主干。<br /><br />条款11: 为需要动态分配
2010-12-04 11:26:00 868
类库查询(MFC类库详解中文版,opencv,opencv,opengl查询)
2012-02-24
PDF转 rtf txt 软件
2011-04-12
Code Block 简体中文语言包
2010-03-23
批处理 自动关机.bat
2010-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人