满载<<操作符,编译不过
重载<<操作符,编译不过
声明:friend ostream& operator<<(ostream& out,Matrix& m);
定义:ostream& operator<<(ostream& out,const Matrix& m)
{
if(m.row_<=0 || m.col_ <=0)
{
out<<"print matrix is empty!"<<endl;
return out;
}
//cout<<"row"<<m.row_<<"\tcol"<<m.col_<<endl;
for(int i=0;i<m.row_;i++)
{
for(int j=0;j<m.col_;j++)
{
out<<m.matrix_[i*m.col_+j]<<"\t";
}
out<<endl;
}
return out;
}
VS2010编译结果:LINK : 没有找到 D:\Program Files\VSProject\MLagain\Debug\MLagain.exe 或上一个增量链接没有生成它;正在执行完全链接
1>rl_main.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Matrix &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@AAVMatrix@@@Z),该符号在函数 _main 中被引用
1>D:\Program Files\VSProject\MLagain\Debug\MLagain.exe : fatal error LNK1120: 1 个无法解析的外部命令
------解决思路----------------------
m.matrix_[i*m.col_+j] 数组?怎么运算重载的?返回值到接收类型在用cout输出吧。
------解决思路----------------------
声明和定义不一致, 编译器把它们当作两个不同的函数
一个是Matrix& 另一个是const Matrix&
声明:friend ostream& operator<<(ostream& out,Matrix& m);
定义:ostream& operator<<(ostream& out,const Matrix& m)
{
if(m.row_<=0 || m.col_ <=0)
{
out<<"print matrix is empty!"<<endl;
return out;
}
//cout<<"row"<<m.row_<<"\tcol"<<m.col_<<endl;
for(int i=0;i<m.row_;i++)
{
for(int j=0;j<m.col_;j++)
{
out<<m.matrix_[i*m.col_+j]<<"\t";
}
out<<endl;
}
return out;
}
VS2010编译结果:LINK : 没有找到 D:\Program Files\VSProject\MLagain\Debug\MLagain.exe 或上一个增量链接没有生成它;正在执行完全链接
1>rl_main.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Matrix &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@AAVMatrix@@@Z),该符号在函数 _main 中被引用
1>D:\Program Files\VSProject\MLagain\Debug\MLagain.exe : fatal error LNK1120: 1 个无法解析的外部命令
------解决思路----------------------
m.matrix_[i*m.col_+j] 数组?怎么运算重载的?返回值到接收类型在用cout输出吧。
------解决思路----------------------
声明和定义不一致, 编译器把它们当作两个不同的函数
一个是Matrix& 另一个是const Matrix&