首页 > 其他分享 >类的使用

类的使用

时间:2023-04-16 17:34:49浏览次数:37  
标签:const int sum 使用 hours Time minutes

//运算符重载operator+()等
#ifndef MYTIME_H_
#define MYTIME_H_

class Time
{
public:
    Time();
    Time(int h, int m = 0);
    void AddMin(int m);
    void AddHr(int n);
    void Reset(int h = 0, int n = 0);
    //如果想进行“+”的重载,只需要将sum换成operator+(),重载不能违反其他操作符的使用,使用时可以使用函数也可以直接使用“+”
    Time sum(const Time& t) const;
    Time operator+(const Time& t) const;
    Time operator-(const Time& t) const;
    Time operator*(double n) const;
    void Show() const;
    ~Time();

    /*C++除了使用公有函数访问私有成员外还可以用友元,友元包括友元函数、友元类、友元成员函数,通过让函数成为类的友元即可访问
    友元函数的声明在函数声明中,加上关键字friend*/
    friend Time operator*(double m, const Time& t) { return t * m; }
    friend std::ostream& operator<<(std::ostream & os, const Time& t);

private:
    int hours;
    int minutes;

};

#endif // !MYTIME_H_
#include <iostream>
#include "mytime.h"

Time::Time() {
    hours = minutes = 0;
}

Time::Time(int h, int m) {
    hours = h;
    minutes = m;
}

Time::~Time() {

}

void Time::AddMin(int m) {
    minutes += m;
    hours += minutes / 60;
    minutes = minutes % 60;
}

void Time::AddHr(int h) {
    hours += h;
}

void Time::Reset(int h, int m) {
    hours = h;
    minutes = m;
}

Time Time::sum(const Time& t) const {
    Time sum;
    sum.minutes = minutes + t.minutes;
    sum.hours = hours + t.hours + sum.minutes / 60;
    sum.minutes = sum.minutes % 60;
    return sum;
}

Time Time::operator+(const Time& t) const {
    Time sum;
    sum.minutes = minutes + t.minutes;
    sum.hours = hours + t.hours + sum.minutes / 60;
    sum.minutes = sum.minutes % 60;
    return sum;
}

Time Time::operator-(const Time& t) const {
    Time diff;
    int tol1, tol2;
    tol1 = t.minutes + 60 * t.hours;
    tol2 = minutes + 60 * hours;
    diff.minutes = (tol2 - tol1) % 60;
    diff.hours = (tol2 - tol1) / 60;
    
    return diff;
}

Time Time::operator*(double mult) const {
    Time result;
    long totalminutes = hours * mult * 60 + minutes * mult;
    result.hours = totalminutes / 60;
    result.minutes = totalminutes % 60;

    return result;
}

std::ostream& operator<<(std::ostream& os, const Time& t) {
    os << t.hours << " hours," << t.minutes << " minnutes";
    return os;
}


void Time::Show() const {
    std::cout << hours << " hours," << minutes << " minutes" << std::endl;
}

 

标签:const,int,sum,使用,hours,Time,minutes
From: https://www.cnblogs.com/okmai77xue/p/17323653.html

相关文章

  • 《花雕学AI》20:ChatGPT使用之体验评测AI EDU的网页版+桌面端+Android+App store组合
    最近准备出门,要去新疆哈密参加活动,一直在寻找手机上可用的AI移动端。昨天在网上偶然找到了AIEDU(这个不是MSRA创立的人工智能开源社区),其链接是:https://ai.aigcfun.com,今天就尝试做个相关体验与学习的记录。打开首页如下:  引言:人工智能聊天机器人ChatGPT是一种基于GPT-......
  • Redis:基本配置与使用?
    一、基于C语言,配置好c环境yuminstall-ygcctcl二、配置文件://监听的请求ip,默认为本地访问,修改为0000为任意访问bind0.0.0.0//设置程序为守护进程,即后台运行daemonizeyes//设置连接密码requirepasspassword//配置日志文件logfile"redis.log"//配置工作目......
  • 使用Python代码远程连接服务器
    目录一、paramiko模块的介绍二、基本使用(用户名密码登录)三、用公钥私钥连接一、paramiko模块的介绍模块介绍使用Python的第三方模块paramiko实现远程连接服务器功能:通过python代码连接服务器并执行相关操作并且支持用户名密码连接和公钥私钥连接模块安装pipinstall......
  • node中使用axios时:Error: unable to verify the first certificate 报错
    参考https://www.daozhao.com/10611.html报错原因:  在使用浏览器访问时,客户端、服务器在握手阶段完成验证。当我们在node中使用axios请求时,客户端没法确认服务端的TLS证书解决方案1、局部constaxios=require('axios')consthttps=require('https')//在axios......
  • k8s使用kubeadm 添加新的node节点
    1.关闭防火墙$systemctlstopfirewalld备注:必须关闭2.关闭selinux$setenforce03.关闭swap$swapoff-a临时关闭$free可以通过这个命令查看swap是否关闭了$vim/etc/fstab永久关闭#/dev/mapper/centos_k8s--master-swapswapswap......
  • 中国蚁剑使用
    使用phpstudy搭建的dvwa靶场,测试文件上传漏洞low级别。1、准备php木马文件,命名为up.php<?phpeval($_POST['abc']);?>2、phpstudy启动,dvwa登录,置为low级别3、上传up.php4、浏览器访问上传的php文件,未报404,说明访问成功5、启动中国蚁剑exe,在主面板右键菜单栏选择添加数据......
  • 使用命令方式,重新命名KVM虚拟机
    使用命令方式,重新命名KVM虚拟机。  1.使用virshlist--all命令查看所有的虚拟机 2.导出原有虚拟机的配置文件在导出配置之前关闭vm。$virshshutdownpc_vm94 virshdumpxml命令将原来的虚拟机配置导出成xml文件$virshdumpxmlpc_vm94>vm94.xml 3.修......
  • 消息队列常见的使用场景
    消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构。最全面的Java面试网站使用较多的消息队列有RocketMQ,RabbitMQ,Kafka,ZeroMQ,MetaMQ以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量......
  • burp介绍和使用
    1、介绍burpsuite,简称为burp,是基于java开发的针对web应用程序的攻击平台。官网:BurpSuite–ApplicationSecurityTestingSoftware–PortSwigger2、下载和安装分为pro版和community版,前者收费,后者免费。community版本无法使用pro的自动测试等功能,但大多数基础的功能还是......
  • PS新手教程-如何使用PS给人物照片牙齿美白
    如何使用PS给人物照片牙齿美白?给大家介绍如何使用PS给人物照片牙齿美白,一起来看看吧。1.打开PS,导入图片,复制图层,如下图2.选择可选颜色,调整黄色。3.调整白色4.将蒙板填充为黑色,如下图5.选择画笔,如下(你也可以根据自己的需要,调整参数)6.使用白色画笔,在牙齿出涂抹,如下图完成:以上就是如何......