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

Posted HOU_JUN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<<\n;
    cout<<setfill( );
}

 

以上是关于3_使用指针对象(Using Object Pointer)的主要内容,如果未能解决你的问题,请参考以下文章

Delphi_05_Delphi_Object_Pascal_基本语法_03

关于JavaScript new 的一些疑问

Using $this when not in object context in

在c++编程中,怎么定义对象数组的指针?

html JS.Objects.Using Math.atan2使对象跟随鼠标指针

使用apache的poi实现导入导出excel