22
2019
09

C++ 继承方式的调整手册

  关于C++ 继承方式的调整,在任何继承方式中,除了基类的private成员外,都可以在派生类中分别调整其访问控制。

调整格式

    [public: | protected: | private: ] <基类名>:: <基类成员名>;



class A
{
  public:
    void f1();
    void f2();
    void f3();
  protected:
    void g1();
    void g2();
    void g3();
}
 
class B: private A
{
  public:
    A::f1;//把f1调整为public
    A::g1;//把g1调整为public,是否允许弱化基类的访问控制要视具体的实现而定
  protected:
    A::f2;//把f2调整为protected
    A::g2;//把g2调整为protected
}
 
class C: class B
{
  public:
    void h()
    {
        f1(); f2(); g1(); g2();//OK
        f3(); g3(); //Error,此时f3,g3是基类B的private成员
    }
}

21
2019
09

C++学习大纲:C++ 消息(成员函数调用)的动态绑定

1. 消息的多态性    C++把类看作类型,把以public方式(严格讲:只有public方式)继承的派生类看做基类的子类型,这样就使得在C++面向对象程序中存在下面的三种多态:    1)对象类型的多态:派生类对象的类型既可以是派生类,也可以是基类。    2)对象标志的多态:基类的指针或引用可以指向或引用基类对象,也可以指向或引用派生类对象。(但是派生类的指针只能指向或引用派生类对象,不能指向或引用基类对象,可以理解为可以将多的给
20
2019
09

C++ 纯虚函数和抽象类

纯虚函数    定义格式:在函数原型后面加上符号 “=0”   class A {     ...   public:      virtual int f()=0;  }2. 抽象类    包含纯虚函数的类成为抽象类,用于为派生类提供一个基本框架和一个公共的对外接口,派生类(或
19
2019
09

c++模板介绍

1. 类属性    类属性: 一个程序实体能对多种类型的数据进行操作或描述的特性。    类属函数:一个函数能对不同类型的数据(参数)完成相同的操作。    类属类:一个类的成员类型可变。2. 函数模板    动态语言中在定义参数是不用指定类型,所以本身就具有类属性。    C++时一种静态类型语言,可以通过宏定义、指针类型参数、函数模板等方式实现类属性。3. 指针类型参数   
18
2019
09

c++标准模板库

1. 容器    容器用于存储数据元素,它们是由长度(元素个数)可变的同类型的元素所构成的序列,如向量、集合、栈、队列等。    vector<元素类型>:用于快速定位(访问)任意位置上的元素以及主要在元素序列的尾部增加/删除元素的场合。在vector头文件中定义,用动态数组实现。    map<关键字类型,值类型> 和 multimap<关键字类型,值类型>:元素按关键字排序,multimap中不同
16
2019
09

final 在 java 中的作用是什么?

final 语义是不可改变的。被 final 修饰的类,不能够被继承。被 final 修饰的成员变量必须要初始化,赋初值后不能再重新赋值(可以调用本对象方法修改属性值)。对基本类型来说是其值不可变;对引用变量来说其引用不可变,即不能再指向其他的对象。被 final 修饰的方法代表不能重写。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/meism5/article/details/891
15
2019
09

hashCode()相同,equals() 也一定为 true吗?

首先,答案肯定是不一定。同时反过来equals为true,hashCode也不一定相同。类的hashCode方法和equals方法都可以重写,返回的值完全在于自己定义。 hashCode()返回该对象的哈希码值;equals()返回两个对象是否相等。 关于hashCode和equal是方法是有一些 常规协定 :1、两个对象用equals()比较返回true,那么两个对象的hashCode()方法必须返回相同的结果。2、两个对象用equals()比较返回false,不要求has
15
2019
09

JDK 和 JRE 有什么区别?

JRE:Java Runtime Environment(java运行时环境)。即java程序的运行时环境,包含了java虚拟机,java基础类库。JDK:Java Development Kit(java开发工具包)。即java语言编写的程序所需的开发工具包。          JDK包含了JRE,同时还包括java源码的编译器javac、监控工具jconsole、分析工具jvisualvm等。————————————————版权声明:本文为C
15
2019
09

欢迎使用Z-BlogPHP!

欢迎使用Z-Blog,这是程序自动生成的文章,您可以删除或是编辑它:)

系统生成了一个留言本和一篇《欢迎使用Z-BlogPHP!》,祝您使用愉快!