运算符/重载

Ser*_*gey 0 c++ operator-overloading

出于学习目的,我正在用C++创建大整数类.有2个文件:

big_int.h

#ifndef BIG_INT_H
#define BIG_INT_H

#include 

class big_int
{
public:
    big_int(void);
    big_int(char*);
    big_int(QString);

    ~big_int();

    big_int operator+(big_int);
    big_int operator-(big_int);
    big_int operator*(big_int);
    big_int operator/(big_int);
};

#endif // BIG_INT_H
Run Code Online (Sandbox Code Playgroud)


big_int.cpp


#include "big_int.h"

big_int::big_int()
{
}

big_int::big_int(QString str)
{
}

big_int::~big_int()
{
}

big_int operator+(big_int b)
{
    return big_int();
}

big_int operator-(big_int b)
{
    return big_int();
}

big_int operator*(big_int b)
{
    return big_int();
}

big_int operator/(big_int)
{
    return big_int();
}
Run Code Online (Sandbox Code Playgroud)

Qt Creator返回:C:/ Documents and Settings/Admin/My Documents/calculator_1_0/big_int.cpp:31:error:big_int operator /(big_int)必须带两个参数.但是operator /只需要1个参数.怎么了?

aJ.*_*aJ. 5

根据@TheSamFrom1984的建议指定类名.

或者为运营商提供两个参数big_int.

class big_int
{
public:
    big_int(void);
    big_int(char*);
    big_int(std::string);

    ~big_int();

    friend big_int operator+(big_int, big_int);
    friend big_int operator-(big_int, big_int);
    friend big_int operator*(big_int, big_int);
    friend big_int operator/(big_int, big_int);
};
Run Code Online (Sandbox Code Playgroud)