Understanding C++ Constructors | Homework Question

  • Context: Comp Sci 
  • Thread starter Thread starter AKJ1
  • Start date Start date
  • Tags Tags
    C++
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
AKJ1
Messages
43
Reaction score
0
1. Homework Statement
In the third constructor in the second snippet of code, I keep getting a compiler warning that hours, milli, seconds, and hours is not initialized in the constructor. Should I just set them equal to zero within that constructor? I have never worked with multiple constructors before, so if something looks really off, please let me know. Thanks!

edit - I don't know why some things are showing up with a and in the code

2. Homework Equations

Code:
//.h file

#ifndef TIME_H_
#define TIME_H_
#include <iostream>
#include <string>
usingnamespace std;

/**

* Time class

*

* The Time class contains time as hours:minutes:seconds:milliseconds (AM/PM).

*/

class Time

{

public:

/**

* Constructor with zero values

*/

    Time();
    /**

    * Constructors with arguments

    */

    Time(long time);

    Time(int hours, int minutes, int seconds, int milli);
    /**

    * Deconstructor

    */

    virtual~Time();
    /**

    * Return time as a long value representing time in milliseconds

    */

   long asLong() const;
    /**

    * Display as a string in the format hours:minutes:seconds:milliseconds.

    * For example 1:45:30:56 PM

    *

    * The time is displayed as 24 hours if the 24 hour flag is set true.

    */

    std::string toString() const;
    /**

    * Enable/disable 24 hour time display

    */

    void set24Hour(bool value);
    /**

    * Return true if 24 hour time display is enabled

    */

    bool is24Hour() const;
private:
    int hours;

    int minutes;

    int seconds;

    int milli;

    long time;
    /**

    * Private members go here

    */

};
#endif/* TIME_H_ */
Code:
* Time.cpp
*
*
*/

#include "Time.h"

Time::Time()
{
    hours=0;
    minutes=0;
    seconds=0;
    milli=0;
    time=0;
}

Time::Time(int hr, int min, int sec, int mil)
{
    hours = hr;
    minutes = min;
    seconds = sec;
    milli = mil;
    time = 0;
}

Time::Time(long tm)
{
    time = tm;
}

Time::~Time()
{

}
 
Last edited by a moderator:
on Phys.org
AKJ1 said:
Should I just set them equal to zero within that constructor?
Set it to whatever is reasonable for your class. If zero is a good choice, set them to zero.

The [b] are probably some copied syntaxhighlighting, but those codes are not supported in code tags here.