B.这其实不叫继承,这是可以全局调用的,静态函数不属于任何一个类的实例,在类被加载的时候,静态函数就会被创建,他的调用是通过类名调用的,所以你用子类类名调用父类静态函数和用父类类名调用这个静态函数完全一样没有任何区别 选A
#include <iostream.h> class animal { public: animal(int height, int weight) { cout<<"animal construct"<<endl; } }; class fish:public animal { public: int a; fish():animal(400,300), a(1) { cout<<"fish construct"<<endl; } }; void main() { fish fh; }
为什么赋值运算符重载函数不能被继承呢?
因为相较于基类,派生类往往要添加一些自己的数据成员和成员函数,如果允许派生类继承基类的赋值运算符重载函数,那么,在派生类不提供自己的赋值运算符重载函数时,就只能调用基类的,但基类版本只能处理基类的数据成员,在这种情况下,派生类自己的数据成员怎么办?
所以,C++规定,赋值运算符重载函数不能被继承。
class Empty { public: Empty(); // 缺省构造函数 Empty(const Empty& rhs); // 拷贝构造函数 ~Empty(); // 析构函数 ---- 是否 // 为虚函数看下文说明 Empty& perator=(const Empty& rhs); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&() const; };