(1)基类的静态成员函数和静态数据成员都可以被继承。
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 class People 7 { 8 public: 9 People() {} 10 ~People() {} 11 static void show(void); 12 static int tall; 13 }; 14 15 void People::show(void) 16 {cout << "The peole!" << endl;} 17 18 int People::tall = 170; 19 20 class Student : public People 21 { 22 public: 23 void gotoSchool(void) {cout << "Go to school!" << endl;} 24 }; 25 26 int main(int argc, char *argv[]) 27 { 28 Student Jack; 29 Jack.gotoSchool(); 30 Student::show(); 31 cout << Student::tall << endl; 32 33 return 0; 34 }
(2)友元函数不可以被继承。
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 class People 7 { 8 public: 9 People() : tall(0) {} 10 ~People() {} 11 12 friend void showInfo(const People& p) 13 {cout << "The tall: " << p.tall << endl;} 14 static void show(void); 15 private: 16 int tall; 17 }; 18 19 class Student : public People 20 {}; 21 22 int main(int argc, char *argv[]) 23 { 24 Student Jack; 25 showInfo(Jack); // 这里友元函数访问了派生类对象 26 27 return 0; 28 }
(3)友元类可以不被继承