c++类&对象&继承

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。

类&对象

类:class

访问类型: public、private、protected

public: 公共成员在类外部可以访问。

private: 私有成员,在函数类外部不可访问。

protected: 受保护成员,但在派生类中可以访问。

继承

有public, protected, private三种继承方式,它们相应地改变了基类成员的访问属性。

  1. public 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:public, protected, private
  2. protected 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:protected, protected, private
  3. private 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:private, private, private

但无论哪种继承方式,上面两点都没有改变:

  1. private 成员只能被本类成员(类内)和友元访问,不能被派生类访问;
  2. protected 成员可以被派生类访问。`

    继承语句:

    class derived-class: access-specifier base-class

原文地址:https://www.cnblogs.com/litingyu/p/8192139.html

时间: 2024-10-10 06:03:25

c++类&对象&继承的相关文章

javascript 类对象的应用

类对象继承的实现 先创建一个父级对象Drag /**  * @author zhaoshaobang  */ function Drag(id){ <span style="white-space:pre"> </span>var _this=this; <span style="white-space:pre"> </span>this.oDiv=document.getElementById(id); <sp

多继承(虚继承)派生类对象内存结构

在这里谈一下虚继承.前面写过派生类对象的内存结构,都是基于VS2010编译器的,不同的编译器对于继承的处理不同,但本质都是一样的. 虚继承是解决共享基类问题的.例如在菱形继承中 如果不使用虚继承,基类A在D中会有两个,这不仅浪费内存,还会造成歧义.使用虚继承就可以解决基类共享的问题. 要想在派生类中共享基类(例如在D对象中只有一个A对象,这时候D对象中的B对象和C对象都可以查找到A,而不是在B对象和C对象中各含有一个A对象). 先看下面一个例子: #include<iostream> usin

面向对象--多继承&amp;派生类对象内存布局分析&amp;各基类指针所指向的位置分析

背景 原文链接:ordeder  http://blog.csdn.net/ordeder/article/details/25477363 关于非虚函数的成员函数的调用机制,可以参考: http://blog.csdn.net/yuanyirui/article/details/4594805 成员函数的调用涉及到面向对象语言的反射机制. 虚函数表机制可以查看下面这个blog: http://blog.csdn.net/haoel/article/details/1948051 总结为: 其一

201671010116. 2016-2017-4《Java程序设计》认识对象与类及继承

1.  类和对象是面向对象编程思想中的核心和基础.类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为"实例化".类就是对一类事物或者一类对象的一个归类或者说划分.我们甚至可以说,"类"只是一个形容词,而'对象'就是这个形容词所形容的其中一个"实体对象".当然也有例外,比如我们都知道Java里面有一个关键字 'static',大家都知道被static所修饰的变量或者方法,在使用的时候是不需要实例化

虚拟继承的类对象的空间大小

// 含有虚拟继承对象的空间大小.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; class A{ public: protected: private: }; class B{ public: protected: private: }; class C:public A,public B{ public: protected: private: };

(二十二)类与对象 ---- 继承

什么时候用继承? 1.当类之间有显著不同,且较小的类是较大的类的组件时,用组合比较好 比如机器人类是一个大类,躯干类.胳膊类.腿类是小类 2.当类之间有很多相同的属性与功能,提取这些共性作为基类,用继承比较好 比如鸡和鸭,我们可以提取他们的共性(两只翅膀.用两只脚走路)做一个禽类,但是他们也有各自独特的个性(鸡会打鸣,鸭会游泳) class qing(): #共性提取为一个基类(禽类) wing = 2 #父类数据属性 def __init__(self,owner): self.owner =

Dart静态方法、对象操作符和类的继承

/* Dart中的静态成员: 1.使用static 关键字来实现类级别的变量和函数 2.静态方法不能访问非静态成员,非静态方法可以访问静态成员 */ // class Person { // static String name = '张三'; // static void show() { // print(name); // } // } // main(){ // print(Person.name); // Person.show(); // } class Person { stati

C++实现根据类名动态生成类对象

在开发后台服务的过程中,我们常常需要从数据库中取数据,并将数据缓存在本地中,另外,我们的服务还需要有更新数据的能力:包括定时的主动更新以及数据库数据更新时服务收到通知的被动更新. 之前在需要用到以上功能的时候,模仿着组内通用的数据Cache部分的代码来写,十分方便,基本上只需要自己写两个类:一个是取数据并缓存数据的类XXXData,一个是扇出数据的类XXXFetcher. 在需要使用数据的时候,通过: FetcherFactory::getFetcher<XXXFetcher>() 即可获取一

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承     继承是面向对象的三大特征之一,通过关键字:extends实现,被继承的类称为父类(也称作基类/超类),实现继承的类称为子类(也称作派生类).     特点:     (1)通过继承,子类可以直接访