如果我取出输出数据[]内容的行,它编译得很好。我似乎无法理解通过实现文件访问数组。任何帮助都会受到赞赏。
实现文件功能:
ostream& operator << (ostream& output, const Bag& b1)
{
for(int i = 0; i< b1.used; i++)
{
output <<Bag.data[i]<<" "; // LINE OF ERROR
}
output<<endl;
return output;
}
头文件:
#ifndef BAG_H
#define BAG_H
#include <cstdlib>
#include <fstream>
namespace greg_bag{
using namespace std;
class Bag
{
public:
typedef int value_type;
typedef std:: size_t size_type;
static const size_type CAPACITY = 30;
Bag(){used = 0;}
void erase();
bool erase_one(const value_type& target);
void insert (const value_type& entry);
//void operator += (const bag& addend);
//size_type size()const {return used;}
//size_type count(const value_type& target) const;
//bag operator +(const bag& b1, const bag& b2);
friend ostream& operator << (ostream&, const Bag&);
private:
value_type data[CAPACITY];
size_type used;
};
}
#endif
错误讯息: 错误:在&#39;之前预期的primary-expression。&#39;令牌|
答案 0 :(得分:0)
数据不是静态变量,因此您可以直接将其与类名一起使用。 对于每个类的实例,数据是不同的。使用以下代码:
ostream& operator << (ostream& output, const Bag& b1)
{
for(int i = 0; i< b1.used; i++)
{
output <<b1.data[i]<<" "; // LINE OF ERROR
}
output<<endl;
return output;
}