#include <iostream>
using namespace std; class Base
{
public:
virtual Base& operator = (const Base &val) {cout<<"Base 3333"<<endl;return *this;}; };
class Derived : Base
{
public:
using Base::operator =;//使用这句会导致无法编译 *dd=b;
//virtual Base& operator = (const Base &val) {cout<<"Base 4444"<<endl;return *this;};
}; int main()
{
Base b; Derived d;
Derived* dd;
*dd=b; return 0;
}
使用显示定义则可以,不知道是什么问题
using namespace std; class Base
{
public:
virtual Base& operator = (const Base &val) {cout<<"Base 3333"<<endl;return *this;}; };
class Derived : Base
{
public:
using Base::operator =;//使用这句会导致无法编译 *dd=b;
//virtual Base& operator = (const Base &val) {cout<<"Base 4444"<<endl;return *this;};
}; int main()
{
Base b; Derived d;
Derived* dd;
*dd=b; return 0;
}
使用显示定义则可以,不知道是什么问题