zoukankan      html  css  js  c++  java
  • 多态性,友元与静态成员 基础知识小结

    1.

    功能晚绑定时运行时完成。

    class Point

    {

    public:

      virtual double Area(){}

      ...

    }

    class Circle:public Point

    {

    public:

      double Area(){}    //仍为虚函数,重定义时virtual可写也可不写

    }

    double CalcArea(Point &ref){}

    //程序运行时根据ref所引用的对象调用该对象的成员函数。

    虚函数不能是友元,静态函数,不能是内联,构造函数。可以是析构函数。

    2.

    纯虚函数:

    virtual 函数类型 函数名() = 0;

    各派生类根据要求再重新定义这些虚函数。

    抽象类(至少含一个纯虚函数)只能作为其它类的基类,不能建立对象,抽象类中可以定义普通函数。

    3.

    友元:

    class Date;

    class Clock;

    class Clock

    {

    public:

      friend void Display(Clock &);

    }

    class Date

    {

    public:

      friend void Clock::Display(Date &);

    }

    也可以友元类:

    friend 类名;

    4.

    静态成员:

    static int sum;

    static int Display();

    它为类的所有对象共享,在所有对象外单独开辟空间,即使不定义对象,也分配空间(编译时)。

    静态成员初始化:

    数据类型 类名::静态数据成员名 = 初值;

    不能再类声明中初始化。

    静态成员函数不能默认访问本类的非静态成员,没有this指针。

    访问方式:

    class Student;

    Student s1;

    Student::sum ;

    或s1.sum ;

  • 相关阅读:
    专题——递归
    今日听郝斌老师鸡汤
    线性结构的两种常见应用之一 队列
    线性结构的两种应用之一——栈
    C++常用库函数
    洛谷 标志重捕法?
    c++复习——临考前的女娲补天 >=.<
    c++复习——类(2)
    c++复习——类(1)
    Python单元测试
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/4222962.html
Copyright © 2011-2022 走看看