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(' ');
    }
  • 相关阅读:
    delphi新语法之泛型实现的对象池模板
    java输入函数
    OC----简单的购物系统----
    关于在堆区创建字符串的疑惑
    自己在OC考试中的试题
    nonatomic, retain,weak,strong用法详解
    python 读写文件和设置文件的字符编码
    python 逐行读取文件的三种方法
    Javascript写入txt和读取txt文件示例
    Javascript的io操作
  • 原文地址:https://www.cnblogs.com/houjun/p/8423198.html
Copyright © 2011-2022 走看看