Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;类属性和对象属性之间的区别_C++ - Fatal编程技术网

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):米小时(小时),米分钟(分钟),米秒(秒){};
作废打印(){

cout
m_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)
中计算的值。好的,谢谢,我会更新答案。