赞
踩
封装
封装的意义
封装是C++面向对象的三大特征之一
封装的意义:
将属性和行为作为一个整体,表现生活中的事物
类中的属性和行为,我们统称为成员
属性-成员属性-成员变量
行为-成员函数-成员方法
封装的意义二
类在设计时,可以把属性和行为放在不同的权限下,加以控制
访问权限有三种
public——公共权限——成员类内可以访问,类外可以访问
protected–保护权限——成员类内可以访问,类外不可以访问
private——私有权限——成员类内可以访问,类外不可以访问
继承
继承是面向对象三大特性之一
子类可以继承或拥有父类的所有内容
普通实现:
#include<iostream> #include<string> using namespace std; //普通实现页面 //java页面 class Java { public: void header() { cout << "首页、登录注册" << endl; } void footer() { cout << "帮助中心、交流合作" << endl; } void left() { cout << "java、python、c++" << endl; } void contenet() { cout << "java学科视频" << endl; } }; class Python { public: void header() { cout << "首页、登录注册" << endl; } void footer() { cout << "帮助中心、交流合作" << endl; } void left() { cout << "java、python、c++" << endl; } void contenet() { cout << "python学科视频" << endl; } }; class Cpp { public: void header() { cout << "首页、登录注册" << endl; } void footer() { cout << "帮助中心、交流合作" << endl; } void left() { cout << "java、python、c++" << endl; } void contenet() { cout << "c++学科视频" << endl; } }; void test() { cout << "java" << endl; Java java; java.header(); java.footer(); java.left(); java.contenet(); cout << endl; cout << "python" << endl; Python python; python.header(); python.footer(); python.left(); python.contenet(); cout << endl; cout << "cpp" << endl; Cpp cpp; cpp.header(); cpp.footer(); cpp.left(); cpp.contenet(); } int main(void) { test(); system("pause"); return 0; }
继承方法实现
#include<iostream> #include<string> using namespace std; //公共页面 class BasePage { public: void header() { cout << "首页、登录注册" << endl; } void footer() { cout << "帮助中心、交流合作" << endl; } void left() { cout << "java、python、c++" << endl; } }; //普通实现页面 //java页面 class Java : public BasePage { public: void contenet() { cout << "java学科视频" << endl; } }; class Python : public BasePage { public: void contenet() { cout << "python学科视频" << endl; } }; class Cpp : public BasePage { public: void contenet() { cout << "c++学科视频" << endl; } }; void test() { cout << "java" << endl; Java java; java.header(); java.footer(); java.left(); java.contenet(); cout << endl; cout << "python" << endl; Python python; python.header(); python.footer(); python.left(); python.contenet(); cout << endl; cout << "cpp" << endl; Cpp cpp; cpp.header(); cpp.footer(); cpp.left(); cpp.contenet(); } int main(void) { test(); system("pause"); return 0; }
总结:
继承的好处:减少重复代码
语法:class 子类:继承方式 父类
子类也称派生类
父类也称基类
派生类中的成员,包含量大部分
一类是从基类继承过来的,一类是自己增加的成员。
从基类继承过来的表现其共性,而新增加的成员体现其个性。
继承方式
继承的语法——class 子类 :继承方式 父类
多带的概念主要是:通俗的说就是,多种形态。具体的说就是当不同的对象去完成时,会产生不同的状态效果。
例如:买火车票这个行为,当普通人买票时,是全价买票;当学生买票时,是半价买票,当是军人等时,是优先买票。
重写或覆盖:是返回值、函数名、参数列表完全相同。
子类中有一个跟父类完全相同的虚函数,子类的虚函数重写了基类的虚函数
注意:重载:重载是函数名相同,而参数列表不同为重载。包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。不能以返回值不同为重载。
1.被调用的函数必须是虚函数,子类对父类的虚函数进行重写 (重写:三同(函数名/参数/返回值)+虚函数)
2、父类指针或者引用去调用虚函数。
注释:
虚函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。