C++ C++;类属性和对象属性之间的区别
问题: 两者之间的区别是什么:C++ C++;类属性和对象属性之间的区别,c++,C++,问题: 两者之间的区别是什么:time.m_seconds=m_seconds+b.m_seconds和time.m_秒=time.m_秒+b.m_秒和time.m_seconds=此->m_seconds+b.m_seconds?它们的输出不一样 问题: 预期产量:20:35:36/ 实际输出:20:34:36/ 输出时间time.m_秒=time.m_秒+b.m_秒:20:34:44 代码: #include <iostream> #include <sstream>
time.m_seconds=m_seconds+b.m_seconds代码>和time.m_秒=time.m_秒+b.m_秒代码>和time.m_seconds=此->m_seconds+b.m_seconds代码>?它们的输出不一样
问题:
预期产量:20:35:36/
实际输出:20:34:36/
输出时间time.m_秒=time.m_秒+b.m_秒代码>:20:34:44
代码:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
class Time {
private:
int m_hours;
int m_minutes;
int m_seconds;
public:
Time(int hours = 0, int minutes = 0, int seconds = 0) : m_hours(hours), m_minutes(minutes), m_seconds(seconds) { };
void print() {
cout << m_hours << ":" << m_minutes << ":" << m_seconds;
}
Time operator+(const Time& b) {
Time time;
//1 : ajout des secondes
time.m_seconds = m_seconds + b.m_seconds;
//Si le nombre de secondes dépasse 60, on rajoute des minutes
//Et on met un nombre de secondes inférieur à 60
time.m_minutes = m_minutes + (m_seconds / 60);
time.m_seconds %= 60;
//2 : ajout des minutes
time.m_minutes = m_minutes + b.m_minutes;
//Si le nombre de minutes dépasse 60, on rajoute des heures
//Et on met un nombre de minutes inférieur à 60
time.m_hours = m_hours + (m_minutes / 60);
time.m_minutes %= 60;
//3 : ajout des heures
time.m_hours = m_hours + b.m_hours;
return time;
}
};
int main() {
Time time1(12, 25, 52);
Time time2(8, 9, 44);
Time result(0,0,0);
result = time1 + time2;
result.print();
return 0;
}
#包括
#包括
#包括
使用名称空间std;
上课时间{
私人:
国际单位小时;
整数分钟;
int m_秒;
公众:
时间(整数小时=0,整数分钟=0,整数秒=0):米小时(小时),米分钟(分钟),米秒(秒){};
作废打印(){
在解释了@Nathan Pierson之后,这就是我问题的答案
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
class Time {
private:
int m_hours;
int m_minutes;
int m_seconds;
public:
Time(int hours = 0, int minutes = 0, int seconds = 0) : m_hours(hours), m_minutes(minutes), m_seconds(seconds) { };
void print() {
cout << m_hours << ":" << m_minutes << ":" << m_seconds;
}
Time operator+(const Time& b) {
Time time;
time.m_seconds = m_seconds + b.m_seconds; // time.m_seconds = 96
time.m_minutes = m_minutes + (time.m_seconds / 60); // time.m_minutes = 25 + 1 = 26
time.m_seconds %= 60; // time.m_seconds = 36
time.m_minutes = time.m_minutes + b.m_minutes; // time.m_minutes = 26 + 9 = 35
time.m_hours = m_hours + (time.m_minutes / 60); // time.m_hours = 12 + 0
time.m_minutes %= 60; // time.m_minutes = 35
time.m_hours = time.m_hours + b.m_hours; // time.m_hours = 12 + 8 = 20
return time;
}
};
int main() {
Time time1(12, 25, 52);
Time time2(8, 9, 44);
Time result(0,0,0);
result = time1 + time2;
result.print();
return 0;
}
#包括
#包括
#包括
使用名称空间std;
上课时间{
私人:
国际单位小时;
整数分钟;
int m_秒;
公众:
时间(整数小时=0,整数分钟=0,整数秒=0):米小时(小时),米分钟(分钟),米秒(秒){};
作废打印(){
coutm_seconds
指的是m_seconds
从+
的左侧开始的m_seconds
,与this->m_seconds
时间相同。m_seconds
指的是函数的局部变量time
的m_seconds
,在默认构造后立即是0
o请注意,time.m_minutes=m_minutes+b.m_minutes
完全覆盖在time.m_minutes=m_minutes+(m_seconds/60)
中计算的值。好的,谢谢,我会更新答案。