访问类C ++的私有变量

查兹

试图重载==运算符,想要比较小时,分钟,秒变量,但是它们被声明为私有变量,并且被告知我们不允许调整头文件。如何在重载==运算符的代码中访问它们?我也无法访问它们,因为它们在setTime方法中被称为h,m,s。

// using _TIMEX_H_ since _TIME_H_ seems to be used by some C++ systems

#ifndef _TIMEX_H_
#define _TIMEX_H_

using namespace std;

#include <iostream>

class Time
{ public:
    Time();
    Time(int h, int m = 0, int s = 0);
    void setTime(int, int, int);
    Time operator+(unsigned int) const;
    Time& operator+=(unsigned int);
    Time& operator++();    // postfix version
    Time operator++(int);  // prefix version

    // new member functions that you have to implement

    Time operator-(unsigned int) const;
    Time& operator-=(unsigned int);
    Time& operator--();      // postfix version
    Time operator--(int);  // prefix version

    bool operator==(const Time&) const;
    bool operator<(const Time&) const;
    bool operator>(const Time&) const;

  private:
    int hour, min, sec;

  friend ostream& operator<<(ostream&, const Time&);

  // new friend functions that you have to implement

  friend bool operator<=(const Time&, const Time&);
  friend bool operator>=(const Time&, const Time&);
  friend bool operator!=(const Time&, const Time&);

  friend unsigned int operator-(const Time&, const Time&);
};

#endif

.cpp文件

using namespace std;

#include <iostream>
#include <iomanip>
#include "Time.h"

Time::Time()
{ hour = min = sec = 0;
}

Time::Time(int h, int m, int s)
{ setTime(h, m, s);
}

void Time::setTime(int h, int m, int s)
{ hour = (h>=0 && h<24) ? h : 0;
  min = (m>=0 && m<60) ? m : 0;
  sec = (s>=0 && s<60) ? s : 0;
}

Time operator==(Time &t1, Time &t2)
{
    return (t1.hour==t2.hour);
}
莫尔布德尼洛

==您应该实现运算符是成员函数,因此您应该定义

bool Time::operator==(const Time& t) const
{
    return hour == t.hour && min == t.min && sec == t.sec;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问私有类变量

来自分类Dev

从超类(JAVA)访问私有变量

来自分类Dev

从类访问私有模块变量

来自分类Dev

从类访问私有模块变量

来自分类Dev

在单独的类中访问私有变量?

来自分类Dev

如何从类访问私有变量?

来自分类Dev

通过类级别访问私有变量。

来自分类Dev

C# 除了将私有类变量设为公开之外,如何从 Main() 访问私有类变量?

来自分类Dev

混淆私有变量访问

来自分类Dev

混淆私有变量访问

来自分类Dev

C ++:从派生类访问基变量或全局变量的私有成员

来自分类Dev

访问私有类C ++内部的结构

来自分类Dev

访问私有类C ++内部的结构

来自分类Dev

访问私有数组中对象的私有变量

来自分类Dev

Javascript私有方法和私有类变量

来自分类Dev

无法通过子类实例从自己的类访问私有变量

来自分类Dev

如何从不同的类访问私有实例变量的值?

来自分类Dev

C ++将外部变量导入私有类变量

来自分类Dev

C ++将外部变量导入私有类变量

来自分类Dev

使公共成员变量访问C ++中同一类的私有成员

来自分类Dev

从私有void函数c#中的另一个类访问变量

来自分类Dev

在C ++中,如何在继承的类中访问私有基本成员变量?

来自分类Dev

从静态成员函数访问私有非静态类变量 - C++

来自分类Dev

如何访问该私有变量?

来自分类Dev

访问声明函数中的私有变量

来自分类Dev

在python属性后面访问“私有”变量

来自分类Dev

如何从方法访问私有变量?

来自分类Dev

在JAVA中访问私有变量(AIDE)

来自分类Dev

OLOO如何访问私有变量