0

我正在使用Code::Blocks. 这是我的代码

#include "LargeInt.h"

LargeInt::LargeInt()
{

}

标题

#ifndef LARGEINT_H
#define LARGEINT_H


class LargeInt
{
    public:
        LargeInt();
};

#endif // LARGEINT_H

我得到的错误是

我班第 3 行中的“LargeInt 没有命名类型”

我所做的只是单击文件 > 新建 > 类,然后在不更改任何设置或类似内容的情况下开始编码。

4

2 回答 2

3

您不应在构造函数中定义运算符。它们应该是 CPP 文件中的单独方法。

于 2013-03-03T21:23:15.833 回答
1

LargeInt构造函数应该执行使类型对象进入有效状态所需的任何操作。似乎您正在尝试定义函数operator<<operator+在构造函数内部 - 您不能这样做:

LargeInt::LargeInt()
{
    LargeInt::operator<<(String input){}
    LargeInt::operator+(LargeInt){}
}

您应该定义具有类定义中相应声明的每个函数。您的实现文件应如下所示:

LargeInt::LargeInt()
{
    // ...
}

LargeInt LargeInt::operator<<(String str)
{
    // ...
    return some_large_int;
}

istream& operator>>(istream &is, LargeInt &large)
{
    // ...
    return is;
}

ostream& operator<<(ostream &os, LargeInt &large)
{
    // ...
    return os;
}
于 2013-03-03T21:28:16.483 回答