吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1312|回复: 11
收起左侧

[已解决] C++运算符重载问题求助

[复制链接]
walh12315 发表于 2020-12-29 23:22
本帖最后由 walh12315 于 2020-12-30 14:09 编辑

我自己写了++运算符重载,结果后置++输出的时候报错,不知道是编译器问题还是什么情况,前置++可以正常输出,左移运算符也重载了,自己从网上找的代码直接复制进来也这样。哪位大神帮忙解答一下,本人小白,目前学习c++中,自己自学只能求助于论坛,不胜感激~ 捕获.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

一片小朵朵 发表于 2020-12-30 01:25
在哪里抄的代码,明显不对啊。
ostream & operator<<( ostream & os, const MyInteger & c)
{
    os << m.mNum;
    return os;
}
一片小朵朵 发表于 2020-12-30 01:26
下次问问题要把代码贴出来,报错的部分可以贴图,你也不想人家手抄一遍把
Anonymous、 发表于 2020-12-30 05:39
参数类型问题,前置和后置返回值不同导致的,ostream& operator<<(ostream& c, MyInteger& m);改为这个ostream& operator<<(ostream& c, MyInteger m);
xbxbxbxb 发表于 2020-12-30 09:02
哈,我把你上图的代码打出来了,你自己看一下???   前面还缺少部分代码    是不是个别 <<号你打错了。

this->mNum++;
return *this;

Myinteger operator++(int)
Myinteger tmp=*this;
this->mNum++;
return tmp;

private:
int mNum;
ostream& operator<<(ostream&c,Myinteger&m)
cout<<m.mNum;
return c;

int main()
Myinteger iNew;
++iNew;
iNew++;
cout<<++iNew;
cout<<iNew++;

//cout<<p1<<p2<<end1;
//cout <<p3.mA<<"--"<<p3.mB<<end1;
 楼主| walh12315 发表于 2020-12-30 10:11
一片小朵朵 发表于 2020-12-30 01:26
下次问问题要把代码贴出来,报错的部分可以贴图,你也不想人家手抄一遍把

好的,谢谢提醒,新人不太懂,我回去试一下
 楼主| walh12315 发表于 2020-12-30 10:14
xbxbxbxb 发表于 2020-12-30 09:02
哈,我把你上图的代码打出来了,你自己看一下???   前面还缺少部分代码    是不是个别 mNum++;
return  ...

应该没有吧,我有从网上直接复制过一段完整代码,也是这样的。谢谢你,我晚上回去再试一下你给的这段代码
隐形人 发表于 2020-12-30 11:05
这是什么IDE
古月不傲 发表于 2020-12-30 13:02
[C++] 纯文本查看 复制代码
#include <iostream>

namespace wind_test
{
	class CMyInteger
	{
		public:
			friend std::ostream &operator <<(std::ostream &out, const CMyInteger &obj);

		public:
			CMyInteger &operator ++()
			{
				this->m_num ++;
				return *this;
			}

			CMyInteger operator ++(int)
			{
				CMyInteger tmp = *this;
				this->m_num ++;
				return tmp;
			}

		private:
			int m_num{};
	};

	std::ostream &operator <<(std::ostream &out, const CMyInteger &obj)
	{
		return out << obj.m_num;
	}
}

int main(void)
{
	wind_test::CMyInteger m;

	m ++;
	++ m;

	std::cout << m << std::endl;
	std::cout << m ++ << std::endl;

	return 0;
}
 楼主| walh12315 发表于 2020-12-30 13:42

VS2019,沒記錯的話好像是企業版的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 10:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表