1) operator<< and operator>> should not be member functions, otherwise you would need to use something like s << cout or s >> cin instead of cout << s and cin >> s
2) You will need to make them "friends" since they need to access private members.
3) Their return type needs to be Objects of type ostream& and istream&. To see the reason, think about the following case:
cout<< s << "is the sparse matrix!" << endl;
Since the value of cout << s is cout (which is of type ostream), both "is the sparse matrix!" and endl can be subsequently inserted into cout.
Thus there is the signature:
class SparseMatrix
{
public:
...
friend ostream& operator<< (ostream& out, const SparseMatrix& s);
...
private:
...
};
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment