gpt4 book ai didi

C++ 重载加法无法正常工作

转载 作者:行者123 更新时间:2023-11-28 03:07:50 26 4
gpt4 key购买 nike

所以基本上我是在尝试重载加号运算符,以便它累加 price1 (1, 99) 和 price2 (2, 99) 的变化。所以 1.99 + 2.99 应该等于 4.98 美元。代码可以编译,但我几乎有了答案。它给出的不是 4.98,而是 3.1.98,这是不对的。我怎样才能解决这个问题?我愿意接受任何建议或想法

这是我的头文件,名为 MyClass.h:

#pragma once

class MyClass
{
public:
int bills;
double coins;

MyClass (int, int);
double sum () { return (bills + (coins * 0.01)); }
MyClass operator+ (MyClass);
MyClass(void);
~MyClass(void);
};

和我的源文件:

#include <iostream>     
#include <string>
#include "MyClass.h"

using namespace std;

MyClass::MyClass(void)
{
}

MyClass::~MyClass(void)
{
}

MyClass::MyClass(int d, int c)
{
bills = d;
coins = c;
}

MyClass MyClass::operator+ (MyClass param) {
MyClass temp;
temp.bills = bills + param.bills;
temp.coins = (coins + param.coins) * 0.01; //Here is the problem, I think
return temp;
}

void main()
{
MyClass price1 (1, 99);
MyClass price2 (2, 99);
MyClass total;
total = price1 + price2;
cout << total.bills << "." << total.coins << endl;
}

最佳答案

您已经在 sum () 中转换了 coins

更新

temp.coins = (coins + param.coins) * 0.01;

temp.coins = coins + param.coins;

而且输出语句是错误的,你自己打印.

cout << total.sum() << endl;

关于C++ 重载加法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com