-3

这是一个主题,在我后来发现的另一篇文章中以概括的方式进行了介绍:运算符重载

但具体来说,这里有一小段代码:

class wordchecklist
{
    string name,type;
    unsigned int stats;
};

我想要做的是重载输出运算符,以便以下代码工作

编辑:(记住它包含私有成员,所以我更喜欢通过创建某种成员函数来这样做):

ofstream data(database.txt,ios::app);
data<<wordchecklist;
data.close();

这样我的 database.txt 文件包含:

mywordchecklistname mywordchecklisttype mywordcheckliststats

输入运算符也是如此......

4

1 回答 1

3

您必须定义一个非成员函数:

std::ofstream &operator <<(std::ofstream &stream, const wordchecklist &data)
{
     stream << data.name << " " << data.type << " " << data.stats << std::endl;
     return stream;
}

对 做同样的事情::operator >>

专业提示:在标识符中使用CamelCapsorunder_scores以使您的类具有可读的名称。

于 2013-07-26T14:53:20.293 回答