摘要:
运算的结果: AAAEEEvalue : 3AAAEEEvalue : 4AAAEEEvalue : 6AAAEEEQQQ==运算符运行! 这样子是我们期望的结果,但是当我们把类内注释的部分取消注释时,会发现是这样的结果! !!!!!EEEvalue : 3!!!!!EEEvalue : 6AAAE 阅读全文
摘要:
上两节可以这样运算: A a1(1); A a2(4); a1 = a2 + 2; 但是这样的话就不行了: a1 = 2 + a2; 因为A对象调用operator+时必须在运算符+的左边,这是C++语言定义的方式。 我们可以这样子需改:在类内声明:friend A operator +(const 阅读全文
摘要:
阅读全文
摘要:
C++允许自己编辑自己版本的加号,以正确处理类, value : 11string : AAAABBBB 在operator和+之间可以有空格也可以没有空格,operator+是一个整体就像是函数名f00,add一样,如果在类A中编写了operator+的方法,那么 A a3 = a1 + a2;这 阅读全文
摘要:
结果是: value : 4value : 5value : 9 在方法的是现实中创建了一个newA的A,返回的是newA而不是newA的引用,否则程序报错,因为add()方法结束后newA超出作用域,因此被销毁返回引用将会是悬挂引用。 阅读全文
摘要:
上述例子中: B是A的友元类,这就意味着B的对象和方法可以访问A的任意数据成员和方法,因为友元类可以访问private和protected成员,这就显得相当不安全 第一步先声明class A,这是为了在B的成员函数能够接收到A的引用, 第二步在A中声明B的函数setValue为友函数 第三步在类外定 阅读全文
摘要:
class1.h文件中: #ifndef CLASS1_H_ #define CLASS1_H_ #include #include class class1 { public: class class2 { public: class2(); class2(const class2 & src); class2& operator = (const class2 & rhs); pri... 阅读全文