码迷,mamicode.com
首页 > 其他好文 > 详细

3_使用指针对象(Using Object Pointer)

时间:2018-02-06 20:26:19      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:span   turn   style   ber   需要   针对   inter   function   int   

  类的成员函数有两种调用方式,一种是由对象调用,另一种是由对象指针调用。其中,对象调用的方式为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<<\n;
    cout<<setfill( );
}

 

3_使用指针对象(Using Object Pointer)

标签:span   turn   style   ber   需要   针对   inter   function   int   

原文地址:https://www.cnblogs.com/houjun/p/8423198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!