C++类体系中,不能被派生类继承的有?
构造函数不能被继承,但是可以被调用。派生类的构造函数在初始化列表中应调用基类的构造函数。
为什么C++赋值运算符重载函数不能被继承?
这个问题曾经困扰过我一阵子。请先看一下下面的源代码:
class A1
{
public:
int perator=(int a)
{
return 8;
}
int operator+(int a)
{
return 9;
}
};
class B1 : public A1
{
public:
int operator-(int a)
{
return 7;
}
};
int main()
{
B1 v;
cout << (v + 2) << endl; // OK, print 9
cout << (v - 2) << endl; // OK, print 7
cout << (v = 2) << endl; // Error, see below
return 0;
}
VC 编译器的错误提示:
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)