【发布时间】:2012-02-28 00:15:19
【问题描述】:
有这个代码:
#include <iostream>
class Base {
public:
Base(){
std::cout << "Constructor base" << std::endl;
}
~Base(){
std::cout << "Destructor base" << std::endl;
}
Base& operator=(const Base& a){
std::cout << "Assignment base" << std::endl;
}
};
class Derived : public Base{
public:
};
int main ( int argc, char **argv ) {
Derived p;
Derived p2;
p2 = p;
return 0;
}
g++ 4.6编译后的输出:
Constructor base
Constructor base
Assignment base
Destructor base
Destructor base
说赋值运算符不被继承,为什么还要调用基类的赋值运算符?
【问题讨论】:
标签: c++ inheritance