C++学习笔记:继承
来源:互联网 发布:甲醛来源 知乎 编辑:程序博客网 时间:2024/06/05 05:07
一、C++中的继承方式会影响子类的对外访问属性
public:修饰的成员变量 方法 在类的内部 类的外部都能使用
protected:修饰的成员变量方法,在类的内部使用,在继承的子类中可用
private:修饰的成员变量方法,只能在类的内部使用
二、private成员在子类中依然存在,但是却无法访问到。不论哪种方式继承基类,派生类都不能直接使用基类的私有成员。
三、C++中子类对外访问属性表:
父类成员访问级别
继 public protected private
承 public public protected private
方 protected protected protected private
式 private private private private
四、三看原则
C++中的继承方式会影响子类的对外访问属性,判断某一句话,能否被访问
1)看调用语句,这句话写在子类的内部还是外部
2)看子类如何从父类继承(public、private、protected)
3)看父类中的访问级别(public、private、protected)
五、综合训练
// 派生类访问控制综合训练.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class A{private:int a;protected:int b;public:int c;A(){a = 0;b = 0;c = 0;}void set(int a, int b, int c){this->a = a;this->b = b;this->c = c;}};class B :public A{public:void print(){//cout << "a = " << a;//errcout << "b = " << b;//okcout << "c = " <<c<< endl;//ok}};class C :protected A{public:void print(){//cout << "a = " << a;//errcout << "b = " << b;//okcout << "c = " << c << endl;//ok}};class D :private A{public:void print(){//cout << "a = " << a;//errcout << "b = " << b;//okcout << "c = " << c << endl;//ok}};int _tmain(int argc, _TCHAR* argv[]){A aa;B bb;C cc;D dd;aa.c = 100;//okbb.c = 100;//ok public//cc.c = 100;//err protected 只能在子类的内部中使用//dd.c = 100;//err private aa.set(1,2,3);//okbb.set(1, 2, 3);//public ok//cc.set(1, 2, 3);//protected err 只能在类的内部使用//dd.set(1,2,3);bb.print();//ok public cc.print();//ok publicdd.print();//ok publicreturn 0;}
- 学习笔记(objective-c)-继承
- Object-C学习笔记三-----继承
- Objective-C学习笔记第四章继承
- 【C++】【学习笔记】【028】多继承
- 【C++】【学习笔记】【029】虚继承
- Objective-C学习笔记九:继承一
- Objective-C学习笔记十:继承二
- 【学习笔记】C++primer plus 13.继承
- 【笔记-C++】 继承
- Objective-C学习笔记---类别(实现多重继承的方法)
- Objective-C学习笔记---类别(实现多重继承的方法)
- Object-C 学习笔记(八)---面相对象(继承)
- Object-c基础编程学习笔记-继承,复合
- 【C++】【学习笔记】【016】this指针和类的继承
- Objective-C 学习笔记 04 - 继承和对象的实例
- 黑马程序员 — Objective-C学习笔记(二):继承
- (C/C++学习笔记)多继承的二义性
- OBJ-C类的继承和派生学习笔记
- 面向对象三大基本特性,五大基本原则
- js 获取选中的多选框值
- 对象从xib中创建初始化完毕的时会调用的方法
- app store 审核被拒原因
- C++第1次实验(基础班)——初识C++
- C++学习笔记:继承
- android中完全退出当前应用程序的四种方法
- DOS环境下如何设置mysql的初始密码
- Java核心技术(第8版)学习笔记_继承(2)_反射
- libevent之event_base
- Python3网络相关
- C语言在linux内核中do while(0)妙用之法
- 【LeetCode OJ 20】Valid Parentheses
- iOS 开发 -- Swift 语法篇 (四) 循环