继承是为了减少重复代码,继承基本语法class 子类 :继承方式 父类
子类和父类又分别叫做派生类和基类
父类子类的构造和析构函数顺序:先进后出,先父后子,白发人送黑发人
class java :public base
子类和父类:
同名成员属性,输出的是子类的成员属性,如果要输出父类成员属性,那就要用作用域:cout << s.base::m_A << endl;
**同类成员属性,**同理s.base::fun();,如果子类出现和父类同名的成员函数,那么子类会把父类同名函数全部隐藏,想访问父类就必须加作用域
静态成员属性:类内声明,类外初始化,访问父类的成员属性,通过对象访问s.base::m_A,也可以通过类名访问son::base::m_A
同名静态成员属性和上面一样,需要加作用域访问父类成员属性
class base {
public:
static int m_A ;
};
int base::m_A = 100;
class base {
public:
static int m_A ;
};
int base::m_A = 100;
class son :public base {
public :
static int m_A ;
};
int son::m_A = 200;
void test01() {
son s;
cout << s.base::m_A << endl;
}
int main() {
test01();
system("pause");
return 0;
}
静态成员函数,同上,都是需要作用域。
继承方式由:公共继承、保护继承、私有继承
父类中的私有权限成员,子类中无法访问
虽然无法访问,但是都被继承了,只不过被隐藏了
利用开发人员命令提示工具
#include <iostream>
using namespace std;
#include <string>
//普通实现
//class java {
//public:
// void header() {
// cout << "首页" << endl;
// }
// void footer() {
// cout << "底部" << endl;
// }
// void left() {
// cout << "左侧" << endl;
// }
// void content(){
// cout << "内容" << endl;
// }
//};
//class python {
//public:
// void header() {
// cout << "首页" << endl;
// }
// void footer() {
// cout << "底部" << endl;
// }
// void left() {
// cout << "左侧" << endl;
// }
// void content() {
// cout << "内容" << endl;
// }
//};
//class C {
//public:
// void header() {
// cout << "首页" << endl;
// }
// void footer() {
// cout << "底部" << endl;
// }
// void left() {
// cout << "左侧" << endl;
// }
// void content() {
// cout << "内容" << endl;
// }
//};
//void test01() {
// java a;
// cout << "--------------------" << endl;
// a.header();
// a.footer();
// a.left();
// a.content();
// python b;
// cout << "--------------------" << endl;
// b.header();
// b.footer();
// b.left();
// b.content();
//}
//继承操作
class base {//公共部分,减少重复代码
public:
void header() {
cout << "首页" << endl;
}
void footer() {
cout << "底部" << endl;
}
void left() {
cout << "左侧" << endl;
}
};
class java :public base {// class 子类:继承方式 父类
public:
void content() {
cout << "JAVA课程" << endl;
}
};
class python :public base {
public:
void content() {
cout << "python课程" << endl;
}
};
class CPP :public base {
public:
void content() {
cout << "C++课程" << endl;
}
};
void test01() {
java a;
cout << "--------------------" << endl;
a.header();
a.footer();
a.left();
a.content();
python b;
cout << "--------------------" << endl;
b.header();
b.footer();
b.left();
b.content();
}
int main() {
test01();
system("pause");
return 0;
}
版权声明:本文为weixin_44730078原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。