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 ;

  • 相关阅读:
    浅谈软件开发项目的质量控制
    分布式系统稳定性模式
    正确使用 Volatile 变量
    我和 OI 的一些故事
    NOIP2020 退役记
    博弈论基础入门
    [HAOI2008]硬币购物(容斥/背包DP)
    [CF] 1307F Cow and Vacation(思维/贪心)
    [noi.ac 模拟赛8] c(容斥/DP)
    [noi.ac 模拟赛9] A.出征准备(同余最短路)
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/4222962.html
Copyright © 2011-2022 走看看