C++笔记(十九)私有继承和多重继承
2018-03-06 10:49
323 查看
//Student.h /* 私有继承:使用私有继承,基类的共有成员和保护成员都将成为派生类的私有成员 多重继承:表示可以有多个基类。 */ #ifndef STUDENT #define STUDENT #include<iostream> #include<string> #include<array> using std::string; using std::cout; using std::endl; using std::array; //名称类 class Name { protected: string name; public: Name(); Name(string namep); string getName(); }; //分数类 class Score { protected: array<double,3> scores; public: Score(); Score(double score0, double score1, double score2); array<double, 3> getScores(); }; class Student : private Name,private Score //私有多重继承 { public: Student(); Student(string namep,double score0, double score1, double score2 ); ~Student(); friend std::ostream & operator<<(std::ostream &os, const Student &stu); }; #endif // !STUDENT
//student.cpp #include "Student.h" Name::Name() { name = "none"; } Name::Name(string namep) { name = namep; } string Name::getName() { return name; } Score::Score() { scores[0] = 0.0; scores[1] = 0.0; scores[2] = 0.0; } Score::Score(double score0, double score1, double score2) { scores[0] = score0; scores[1] = score1; scores[2] = score2; } array<double, 3> Score::getScores() { return scores; } Student::Student():Name(),Score() { } Student::Student(string namep, double score0, double score1, double score2):Name(namep),Score(score0,score1,score2) { } Student::~Student() { } std::ostream & operator<<(std::ostream &os, const Student &stu) { cout << "name:" << stu.name << " scores:" << stu.scores[0] << "," << stu.scores[1] << "," << stu.scores[2] << endl; return os; } int main() { Student stu = Student("yueer",90.1,95.5,100); cout << stu << endl; //stu.getName(); 私有继承后外部不可访问基类中的成员函数 return 0; }
输出结果:
name:yueer scores:90.1,95.5,100
相关文章推荐
- Python学习笔记--类简介,继承,私有成员
- C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:多重继承与虚继承) .
- Objective-C学习笔记---类别(实现多重继承的方法)
- python-对象、私有属性_方法、继承(多重继承)、重写
- 公有、私有和受保护的继承--《C++ primer》笔记
- [javase学习笔记]-9.2 单继承与多重继承
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- Objective-C学习笔记---类别(实现多重继承的方法)
- has-a关系——多重私有继承
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- 【Java学习笔记之十九】super在Java继承中的用法小结
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- C++学习笔记十九-多重继承与虚继承
- Python3.2官方文档翻译-多重继承和私有变量
- Learn Objective‐C,学习笔记03 类别(实现多重继承的方法)
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- C++ FAQ学习笔记 24章 继承 — 私有继承和保护继承
- (1.1.11)继承、公有、保护、私有继承和多重继承等
- [javase学习笔记]-9.2 单继承与多重继承
- 《C++ Primer Plus》14.2 私有继承 学习笔记