首页 > 编程语言 >c++重载运算符

c++重载运算符

时间:2024-03-19 20:29:52浏览次数:19  
标签:p2 p1 return Point int c++ 运算符 重载

定义点类( Point ),用以表示几何学点的概念,有属性 x 、 y 表示坐标,并重载"-"单目运算符和"=="双目运算符,要求"-"实现对象的成员变量的数值符号取反,而"=="实现判断两个 Point 类的对象坐标是否相同。

#include <iostream>
using namespace std;
class Point {
	int x, y;
public:
	Point(int x0, int y0) :x(x0), y(y0)
	{
	}
	void show()
	{
		cout << "(" << x << "," << y << ")" << endl;
	}
	Point operator-()
	{
		return Point (-x,-y);
	}
	bool operator== (const Point& c3)
	{
		if (this->x == c3.x&&this->y==c3.y)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
};
int main()
{
	Point p1(3, 4);	
	
	Point p2 =-p1;
	p2.show();
	if (p1 == p2)
	{
		cout << "两个点坐标相同" << endl;
	}
	else
	{
		cout << "两个点坐标不相同" << endl;
	}
	return 0;
}

标签:p2,p1,return,Point,int,c++,运算符,重载
From: https://blog.csdn.net/2301_80790320/article/details/136854320

相关文章

  • C++ new&malloc
    1.申请的内存所在位置new操作符从自由存储区(freestore)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。那么自由存储区是否能够是堆(问题等价于new是否能在堆上动态分配内存),这取决于operatornew的实现细节。自由存储区不仅可以是堆,还可以是静态存储区,这都看operator......
  • C++ 返回值优化
    1.函数返回机制函数返回值的传递分为两种情况:当返回的对象大小不超过8字节时,通过寄存器(eaxedx)返回。当返回的对象大小大于8字节时,通过栈返回。此处需要注意的时候,如果返回的是struct或者class对象,即使其大小不大于8字节,也是通过栈返回的。在通过栈返回的时候,栈上会有一块......
  • C++ volatile
    1.volatile关键字C++中的volatile关键字和const对应,用来修饰变量,通常用于建立语言级别的memorybarrie。volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访......
  • C++ static
    1.隐藏(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。static可以用作函数和变量的前缀,对于函数来讲,sta......
  • C++高级面试题:解释 C++ 中的函数对象适配器
    解释C++中的函数对象适配器函数对象适配器是C++中的一种编程技术,用于修改或增强现有的函数对象的行为。它们通常通过组合或包装现有的函数对象来实现所需的功能。函数对象适配器允许我们在不修改原始函数对象的情况下,对其进行修改或扩展。这样可以实现代码的重用和可......
  • C++ static和const
    const定义的常量在超出其作用域之后其空间会被释放;static定义的静态常量在函数执行后不会释放其存储空间;1.staticstatic表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员......
  • const,static深度总结——c++穿透式分析
         前言;c++类和对象的知识点中除了几种默认函数,比较重要的还有使用const和static修饰成员相关知识点。const在c++中特性很简单。但是在使用中,比较容易疏忽大意出现问题。static特性也很简单,但是比起const来要直接的多。在使用中只要熟练语法以及底层原理。就......
  • C++ memcpy、memmove
    函数原型:void*memcpy(void*dest,constvoid*src,size_tcount);void*memmove(void*dest,constvoid*src,size_tcount);memcpy和memmove相同点:都是用于从src拷贝count个字节到destmemcpy和memmove区别:如果目标区域和源区域有重叠的话:memcpy不能够确保源......
  • c++学习记录 STL—常用查找算法
    一、算法简介find               //查找元素find_if             //按条件查找元素adjacent_find       //查找相邻重复元素binary_search      //二分查找法count        ......
  • C++ kmalloc、kzalloc、vmalloc的区别
    1.kmalloc函数原型:void*kmalloc(size_tsize,gfp_tflags);kmalloc()申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128KB。较常用的flags(分配内存的方法):G......