c++ - 我将如何增加一个类中的单独变量,而不是对象本身?
问题描述
假设有一个 Time 类,它包含 Hour、Minute 和 Second 三种数据类型。使用运算符重载,我将如何分别增加这三个变量?
这是一个反例,展示了如何使用 ++ 运算符递增所有变量。我想单独增加它们或只增加一个。但我不知道如何通过对象访问它们
class Time
{
private:
int Hour, Minute, Second, option;
public:
Time() : Hour(13), Minute(59), Second(59)
{
}
void operator ++ ()
{
++Second;
++Minute;
++Hour;
}
void Display ()
{
cout << Hour << ":" << Minute << ":" << Second << endl;
}
};
int main ()
{
Time t;
++t;
t.Display();
return 0;
}
解决方案
创建一个具有一些公共属性的类
class Time {
public:
int hour = 0;
int minute = 0;
int second = 0;
};
然后创建一个 Time 实例并更新属性
Time time = Time();
// assign whatever value you like
time.hour = 2;
time.minute = 32;
time.second = 324;
// or use the increment operator
time.hour++
// time.hour now contains the value 3
推荐阅读
- sql - Cakephp 中的 json_extract SQL
- vector - 如何在 Amardillo 中连接两个或多个向量?
- javascript - 断言失败错误:在转换到另一个页面后调用 api 时在 ember 中
- php - Merge and group only certain array keys into new arrays
- python - 从 python requests.post() 中检索 JSON 有效字符串
- python - Django REST Framework——序列化多对多表关系
- javascript - How to disable eslint rule max line length for paragraph in of vue.js?
I am using airbnb eslint and currently I am getting error:
error: Line 6 exceeds the maximum line length of 100 (max-len) at path/
- java - 如何参数化java方法以迭代表中的元素?
- python - Telepot - Telegram 机器人每 10 分钟发送一次消息
- javascript - 没有异步操作的 Promise 的目的是什么?