C++ 笔记2:重载运算符
来源:互联网 发布:js 替换标签内容 编辑:程序博客网 时间:2024/06/05 21:57
先看代码:
class Point{private: int x,y;public: Point(int x, int y) { this->x = x; this->y = y; } int getX(){ return this->x; } int getY(){ return this->y; } void add(Point p) // 将参数(p)的 x y 坐标分别加在当前实例的x y 上面 { add(p.getX(), p.getY()); } void add(int x, int y) // 将参数的x和y 值加到当前的x y 属性上面 { this->x += x; this->y += y; } // 重载运算符 void operator += (Point p) { add(p); }};int main(int argc, const char * argv[]) { Point p(5,5); p.add(Point(10, 10)); std::cout <<p.getY()<<"\n"; p += Point(10,10); std::cout <<p.getY()<<"\n"; return 0;}
class Point{private: int x,y;public: Point(int x, int y) { this->x = x; this->y = y; } int getX(){ return this->x; } int getY(){ return this->y; } void add(Point p) { add(p.getX(), p.getY()); } void add(int x, int y) { this->x += x; this->y += y; } // 重载运算符 void operator += (Point p) { add(p); }};int main(int argc, const char * argv[]) { /* Point p(5,5); p.add(Point(10, 10)); std::cout <<p.getY()<<"\n"; p += Point(10,10); std::cout <<p.getY()<<"\n"; return 0; */ // 如果p是指针,又该如何操作呢? Point *p = new Point(5,5); (*p) += Point(10, 10); std::cout <<p->getY()<<"\n"; }
注意最下面3行代码。p 是一个Point 指针实例(对象)。指针对象取值方法是(*p)关键字,等同于p实例。
由于p是指针,因此不能通过.getY来取值。应该用 p->getY().
0 0
- 【笔记-C++】 运算符重载
- 《Inside C#》笔记(十一) 运算符重载
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- java基础知识——final关键字
- 关于汇编程序和底层的一点知识
- android studio 不翻墙更新SDK
- Glide图片加载库的使用
- 如何生成hive的建表语句(批量)
- C++ 笔记2:重载运算符
- sql server中常见的数据类型
- Android中关于线性布局基线对齐
- Android【封装】多线程下载以及断点续传
- 基于BP网络解决异或问题
- 开源大数据查询分析引擎现状
- SQL中as的用法
- try catch finally
- 数据结构学习整理