A类是B类的父集 B类是A类的子集 子类是父类的父集,父类是子类的子集 电脑 和 笔记本电脑
基类父类 子类 派生类 封装:
private 私有 小明的车 只有自己可以开
不能通过对象名去访问 只有当前类的成员 能 访问
当前类的对象的公有函数 就是 当前类的对象
public 公有 小明的脸 谁都可以看
随便访问
protected 保护 小明老婆可以开他车,其他人不可以开他车
介于私有与公有之间
如果是派生类 public
不是派生类 private
说的是 继承自基类的 成员 派生类内部的基类对象,需要用基类构造器来构造
如何设计类,如何设计类与类之间的关系
万物皆对象 飞机大战:
敌机 自己控制的飞机 道具 僚机 子弹 导弹
飞行物类
飞机类 继承 飞行物类
道具类 继承 飞行物类
子弹类 继承 飞行物类
#include#include #if 0 //人类 父类 子集 class Person{ protected: //private: char name[20]; int age; public: Person(){printf("Person类默认构造器n");} Person(const char* n, int a){ strcpy(name, n); age = a; printf("Person类有参构造器n"); } void show(){printf("人类%s,今年%d岁n", name, age);} void eat(const char* food){ if (0 == strcmp(food,"奥利给")) this->die(); printf("人类%s吃%s,吃了八斤,很开心!n", name, food); } private: void die(){ printf("%s自己干掉了自己!n", name); } }; //老师类 子类 父集 class Teacher :public Person{ char ke[20]; public: Teacher(const char* name, const char* k, int age) :Person(name, age){ strcpy(this->name, name); this->age = age; strcpy(ke, k); printf("Teacher类构造器2n"); } Teacher(const char* k){ strcpy(ke, k); printf("Teacher类构造器1n"); }//默认构造器 void show(){ printf("教%s的老师n", ke); } void teach(Person* p){ printf("老师教%s%sn",name, ke); //printf("老师教%s课程n", ke); } }; int main(){ Teacher t1("小姐", "C++语言", 20); t1.show(); t1.eat("冬瓜"); // t1.teach(&p1); while (1); return 0; } #endif class A{ public: int n; A(int n) :n(n){} }; class B:public A{ public: int n; B(int n1, int n2) :A(n1), n(n2){ //this->A::n = n1; this->n = n1; } void show(){ printf("A::n %d B::n %dn",A::n, n); } }; int main(){ B b(1, 2); b.show(); while (1); return 0; }



