为了账号安全,请及时绑定邮箱和手机立即绑定

一元运算符带参数重载的作用?

带参数重载有什么用?我带类内声明了带参数重载的一元运算符重载并类外定义了,

那么可以调用带参重载吗?如何使用?

// C++template.cpp: 定义控制台应用程序的入口点。
//
#include<iostream>

class Base
{
public:
	Base(int x =0,int y =0,double d = 0):m_ix(x),m_iy(y),m_id(d) {}
	~Base(){}
        //输出
	void PrintInfo();
        //重载
	Base& operator-();
	Base& operator-(int);
	Base& operator-(double);
private:
	int		m_ix;
	int		m_iy;
	double	m_id;
};

void Base::PrintInfo()
{
	std::cout << "m_ix:" << this->m_ix << " m_iy:" << this->m_iy <<  " m_id:" << this->m_id << std::endl;
}
//--------重载
Base& Base::operator-()
{
	this->m_ix = -(this->m_ix);
	this->m_iy = -(this->m_iy);
	this->m_id = -(this->m_id);
	return *this;
}
Base& Base::operator-(int)
{
	this->m_ix = -(this->m_ix);
	this->m_iy = -(this->m_iy);
	return *this;
}

Base& Base::operator-(double)
{
	this->m_id = -(this->m_id);
	return *this;
}
//------主函数
int main()
{
	Base b(1,1,1.);
	-b;
	b.PrintInfo();
    return 0;
}


正在回答

1 回答

实验性代码有点bug,简单来说,我能不能使用opertaor-(double)重载函数能使得int类型的成员属性不改变,而double类型的属性取负值

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

一元运算符带参数重载的作用?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信