使用输出流重载操作符指针

时间:2015-12-02 15:47:42

标签: c++ instance overloading

我有一份课程要提交,我几乎完成了所有工作。但是我被困在了 我需要使用输出流运算符将类实例读取到文件中。输出流运算符将实例作为参数,但我需要 将它用于指向实例的指针。有什么帮助吗?

我的输出流运算符实现是:

ostream& operator<<(ostream& out, sequence &s)
{
    out<<s.number_of_samples;//<<s.samples;
    s.samples=new float [s.number_of_samples];
    for(int i=0; i<s.number_of_samples; i++) out<<s.samples[i];
    return(out);
}

它将实例读取到文件的位是:

ofstream output_filtered_samples_file("output.txt");
sequence* filtered_sequence = test_FIR.apply_filter(test_sequence);
output_filtered_samples_file<<filtered_sequence;

完整代码为http://ideone.com/V0Xavo

2 个答案:

答案 0 :(得分:0)

取消引用指针。 。 。

output_filtered_samples_file<<*filtered_sequence;

答案 1 :(得分:0)

您有两种选择:

  1. 写一个接受指针的operator<<()
  2. 传递解除引用的值。
  3. 第二种选择可能是最好的选择:

    output_filtered_samples_file << *filtered_sequence;
    

    你的operator<<()应该更喜欢接受对const的引用,因为没有人希望它能修改对象:

    ostream& operator<<(ostream& out, const sequence &s)
    

    这将帮助您确定方法正文的错误。