zoukankan      html  css  js  c++  java
  • 3_使用指针对象(Using Object Pointer)

      类的成员函数有两种调用方式,一种是由对象调用,另一种是由对象指针调用。其中,对象调用的方式为objectName.memberFunctionName(parameters),而对象指针调用的方式为objectPointer->memberFunctionName(parameters)。

      对象指针调用objectPointer->memberFunctionName(parameters)等价于先将对象指针解引用,然后使用对象调用的方式调用成员函数。即(*objectPointer).memberFunctionName(parameters),其中objectPointer为对象指针。

      以上,要注意的是操作符的优先级:如果对象指针的间接访问操作不加括号,会陷阱行点操作运算,从而导致编译失败,因为指针进行点操作是非法的。

    //=============================================
    //对象指针使用成员函数
    //=============================================
    
    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    /**
    *类定义体
    */
    class Date{
    private:
        int year,month,day;
    public:
        //在类定义体内定义成员函数,不需要在函数名前冠以类名
        void set(int y,int m,int d)
        {
            year = y;
            month = m;
            day = d;
        };
        bool isLeapYear();
        void print();
    };
    
    
    //使用日期类
    int main()
    {
        Date* dp = new Date;
        dp->set(2018,2,6);
        if((*dp).isLeapYear())
        {
            dp->print();
        }
        return 0;
    }
    
    //成员函数类定义体外定义
    
    inline bool Date::isLeapYear() //显示内联
    {
        return (year%4==0 && year%100!=0)||(year%400==0);
    }
    
    void Date::print()
    {
        cout<<setfill('0');
        cout<<setw(4)<<year<<'-'<<setw(2)<<month<<'-'<<setw(2)<<day<<'
    ';
        cout<<setfill(' ');
    }
  • 相关阅读:
    双向链表
    单链表实例+反转
    const,static,volatile
    html基础知识
    linux知识
    2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) D. Delivery Delays (二分+最短路+DP)
    2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) A. Altruistic Amphibians (DP)
    BZOJ 1453 (线段树+并查集)
    HDU 5634 (线段树)
    BZOJ 2124 (线段树 + hash)
  • 原文地址:https://www.cnblogs.com/houjun/p/8423198.html
Copyright © 2011-2022 走看看