64,644
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Widget
{
public:
const Widget operator*(const Widget& w)
{
cout << "class Widget" << endl;
return Widget();
}
protected:
private:
};
const Widget operator*(const Widget& w)
{
cout << "function Widget" << endl;
return Widget();
}
int main()
{
Widget a;
Widget b;
a * b; //为什么调用的是类里面的重载函数?
return 0;
}
#include <iostream>
using namespace std;
class Widget
{
public:
const Widget operator*(const Widget& w)
{
cout << "class Widget" << endl;
return Widget();
}
protected:
private:
};
const Widget Widget::operator*(const Widget& w)
{
cout << "function Widget" << endl;
return Widget();
}
int main()
{
Widget a;
Widget b;
a * b; //为什么调用的是类里面的重载函数?
return 0;
}
#include <iostream>
using namespace std;
class Widget
{
public:
Widget(){}
const Widget operator*(const Widget& w)
{
cout << "class Widget" << endl;
return Widget();
}
protected:
private:
};
const Widget operator*(const Widget& w1, const Widget& w2)
{
cout << "const Widget operator*(const Widget& w1, const Widget& w2)" << endl;
return Widget();
}
const Widget operator*(Widget& w1, const Widget& w2)
{
cout << "const Widget operator*(Widget& w1, const Widget& w2)" << endl;
return Widget();
}
const Widget operator*(Widget& w1, Widget& w2)
{
cout << "const Widget operator*(Widget& w1, Widget& w2)" << endl;
return Widget();
}
int main()
{
Widget a;
Widget b;
const Widget ca;
const Widget cb;
a * b;
ca * cb;
//a * ca;//二义
ca * cb;
system("pause");
return 0;
}
class Widget
{
public:
friend void operator*(const Widget& w,const Widget& y);
protected:
private:
};
void operator*(const Widget& w,const Widget& y)
{
cout << "function Widget" << endl;
}