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(‘ ‘);
}

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

时间: 2024-11-09 02:07:20

3_使用指针对象(Using Object Pointer)的相关文章

type object pointer(类型对象指针)

都知道.NET是一个强对象类型的框架. 那么对于对象类型又是怎么确定的呢. 最初的我简单认为数据的类型就是定义时字段的类型修饰决定的(回来发现这种观点是绝对错误的) 我们知道引用对象存储在托管堆栈中,而变量本身是存储着对象的地址的.而对象的类型到底是存储在什么地方的呢. 先看一段简单的代码 private static void Gt() { dynamic dyn = (object)(new int[] { 1, 2, 3, 4, 5, 6, 7 }); object obj = new i

css cursor鼠标指针光标样式default pointer hand url

我们在DIV CSS布局时候,我们会遇到对对象内鼠标指针光标进行控制,比如鼠标经过指针变为手指形状等样式,接下来我们介绍鼠标指针样式cursor控制.系统默认鼠标指针样式外,可以通过CSS设置图片为鼠标指针,常见有些网站鼠标指针是各种各样小图片样式,当然这个是通过css cursor设置鼠标样式. 详见网站介绍:http://www.divcss5.com/rumen/r427.shtml css cursor鼠标指针光标样式default pointer hand url,布布扣,bubuko

MFC获取各个窗口(体)之间的指针(对象)

MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决. HWND hWnd=::FindWindow(NULL,_T("Sphere"));      //得到对话框的句柄 C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针 pWnd->xxx( );   //调用C***Dialog中的函数xxx(); 以上参考:http:

Dangling pointer(悬垂指针、迷途指针)和 Wild pointer(野指针)

一.迷途指针(悬垂指针) 在计算机编程领域中,迷途指针与野指针指的是不指向任何合法的对象的指针. 当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称迷途指针(悬垂指针).若操作系统将这部分已经释放的内存重新分配给另外一个进程,而原来的程序重新引用现在的迷途指针,则将产生无法预料的后果.因为此时迷途指针所指向的内存现在包含的已经完全是不同的数据.通常来说,若原来的程序继续往迷途指针所指向的内存地址写入数据,这些和原来程序不相关的数

【转】JavaScript中的对象复制(Object Clone)

JavaScript中并没有直接提供对象复制(Object Clone)的方法.因此下面的代码中改变对象b的时候,也就改变了对象a. a = {k1:1, k2:2, k3:3}; b = a; b.k2 = 4; 如果只想改变b而保持a不变,就需要对对象a进行复制. 用jQuery进行对象复制 在可以使用jQuery的情况下,jQuery自带的extend方法可以用来实现对象的复制. a = {k1:1, k2:2, k3:3}; b = {}; $.extend(b,a); 自定义clone

不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, const 对象的引用 作者:webabcd 介绍不可或缺 Windows Native 之 C++ this 指针 对象数组 对象和指针 const 对象 const 指针和指向 const 对象的指针 const 对象的引用 示例1.CppEmployee 类CppEmployee.h #pragma

EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上是只有产品组维护,里面包含其所有的业务逻辑,并提供相应的Expert给自己或者其它产品组使用.而VO是各个组根据需要或基于EO或者只读的SQL而建立的,里面可以根据需要添加自己的业务实现和逻辑. 对于EO内部的验证功能,在开发文档中主要介绍了三种: 1. 在setter里面实现单个属性的验证.这主要是对于没有依赖关系的属性,也就是说它的验证不需要其它会被修改的属性的支持.比如,验证

是否可以修改 JavaScript 的本地对象(native object)

本文翻译自RapydScript的作者 Alexander Tsepkov 的博客. 原文地址:http://blog.pyjeon.com/2014/05/17/modifying-native-javascript-objects/ 注:本地对象 (native object) 是指"独立于宿主环境的 ECMAScript 实现提供的对象",比如 Global 和 Math等. 在JavaScript社区,对于JavaScript本地对象(Array, Number, String

[Elasticsearch] 索引管理 (三) - 根对象(Root Object)

根对象(Root Object) 映射的最顶层被称为根对象.它包含了: 属性区域(Properties Section),列举了文档中包含的每个字段的映射信息. 各种元数据(Metadata)字段,它们都以_开头,比如_type,_id,_source. 控制用于新字段的动态探测(Dynamic Detection)的设置,如analyzer,dynamic_date_formats和dynamic_templates. 其它的可以用在根对象和object类型中的字段上的设置,如enabled,