main1.cpp:20: 错误:no match 为‘operator<<’在‘std::cout << p’中
iostream头文件包含正确了吗
#include
#include "picture.h"
main 文件
#include
#include "picture.h"
char *init[] = { "Paris", "in the", "Spring" };
int main()
{
Picture p(init, 3);
std::cout << p << std::endl;
return 0;
}
picture.h
class ostream;
class Picture {
friend ostream& operator<<(ostream&, const Picture&);
friend Picture frame(const Picture&);
friend Picture operator&(const Picture&, const Picture&);
friend Picture operator|(const Picture&, const Picture&);
public:
Picture();
Picture(const char* const*, int);
Picture(const Picture&);
~Picture();
Picture& operator=(const Picture&);
private:
int height, width;
char* data;
void copyblock(int, int, const Picture&);
char& position(int row, int col) {
return data[row * width + col];
}
char position(int row, int col) const {
return data[row * width + col];
}
void clear(int, int, int, int);
void init(int, int);
static int max(int, int);
};
main1.cpp: In function ‘int main()’:
main1.cpp:20: 错误:no match 为‘operator<<’在‘std::cout << p’中
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:108: 附注:备选为: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:117: 附注: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits]