这部分是受这个问题的启发.当我写代码时:
void test(std::string inp)
{
std::cout << inp << std::endl;
}
int main(void)
{
test("test");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
"test"隐式转换const char*为std::string,我得到预期的输出.但是,当我尝试这个:
std::string operator*(int lhs, std::string rhs)
{
std::string result = "";
for(int i = 0; i < lhs; i++)
{
result += rhs;
}
return result;
}
int main(void)
{
std::string test = 5 * "a";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到编译器错误,invalid operands of types 'int' and 'const char [2]' to binary 'operator*'."a" …
我有一个头文件和一个.cpp文件.我需要为我的.h文件编写函数,但是在我完全完成一个骨架.cpp文件之前我得到一个错误.
Money.h
#ifndef MONEY_H
#define MONEY_H
#include <iostream>
#include <iomanip>
using namespace std;
class Money
{
public:
Money(int dollars, int cents);
Money operator+(const Money& b) const;
Money operator-(const Money& b) const;
Money operator*(double m) const;
Money operator/(double d) const;
void print() const;
private:
int dollars;
int cents;
};
#endif
Run Code Online (Sandbox Code Playgroud)
Money.cpp
#include "Money.h"
Money::Money(int dollars, int cents){
}
Money operator+(const Money& b) {
}
Money operator-(const Money& b) {
}
Money operator*(double m) {
}
Money operator/(double d) {
}
void …Run Code Online (Sandbox Code Playgroud)