我正在使用Code::Blocks
。这是我的代码
#include "LargeInt.h"
LargeInt::LargeInt()
{
}
标题
#ifndef LARGEINT_H
#define LARGEINT_H
class LargeInt
{
public:
LargeInt();
};
#endif // LARGEINT_H
我得到的错误是
'LargeInt没有在我班级的第3行命名类型'
我所做的只是点击文件>新>类,然后开始编码而不改变任何设置或类似的东西。
答案 0 :(得分:3)
您不应在构造函数中定义运算符。它们应该是CPP文件中的单独方法。
答案 1 :(得分: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;
}