Trouble Compiling Prog That Uses Classes

I'm working on this program that runs some functions on a class called dayType, where the user enters a day and then the program can tell you the next day, previous day, etc. The problem I have is that when I try to compile the program, in the implementation file the function printDay() is causing issue. The compiler is saying, "Out of line definition of 'printDay' does not match any declaration in 'dayType'. It seems like everything is set up correctly, but I'm not sure what the issue is. Any help or suggestions are greatly appreciated.

header file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef Day_of_the_Week_Program_dayType_h
#define Day_of_the_Week_Program_dayType_h

#include <string>
#include "dayType.h"

using namespace std;

class dayType
{
private:
    string days[7];
    string currentDay;
    int numDays;
    
public:
    
    dayType();
    
    string setDay(string newDay);
    
    void printDay() const;
    
    int showDay(int& day);
    
    int nextDay(int day);
    
    int prevDay(int day);
    
    int calcDay(int day, int numDays);
  
    
};


#endif 


implementation file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include "dayType.h"
#include <string>
#include <iostream>

dayType::dayType()
{
    days[0] = "Sunday";
    days[1] = "Monday";
    days[2] = "Tuesday";
    days[3] = "Wednesday";
    days[4] = "Thursday";
    days[5] = "Friday";
    days[6] = "Saturday";
    currentDay = days[0];
    numDays = 0;
}

string dayType::setDay(string newDay)
{
    currentDay = newDay;
    return newDay;
}

void dayType::printDay()
{
    cout << "Day chosen is " << currentDay << endl;
    
}

int dayType::showDay(int& day)
{
    return day;
}

int dayType::nextDay(int day)
{
    day = ++day;
    
    if (day > 6)
        day = day % 7;
    
    switch (day)
    {
        case 0: cout << "The next day is Sunday";
            break;
        case 1: cout << "The next day is Monday";
            break;
        case 2: cout << "The next day is Tuesday";
            break;
        case 3: cout << "The next day is Wednesday";
            break;
        case 4: cout << "The next day is Thursday";
            break;
        case 5: cout << "The next day is Friday";
            break;
        case 6: cout << "The next day is Saturday";
            break;
    }
    cout << endl;
    return day;
}

int dayType::prevDay(int day)
{
    day = --day;
    
    switch (day)
    {
        case -1: cout << "The previous day is Saturday.";
            break;
        case 0: cout << "The previous day is Saturday.";
            break;
        case 1: cout << "The previous day is Saturday.";
            break;
        case 2: cout << "The previous day is Saturday.";
            break;
        case 3: cout << "The previous day is Saturday.";
            break;
        case 4: cout << "The previous day is Saturday.";
            break;
        case 5: cout << "The previous day is Saturday.";
            break;
        default: cout << "The previous day is Saturday.";
    }
    
    cout << endl;
    return day;
    
}

int dayType::calcDay(int addDays, int numDays)
{
    addDays = addDays + numDays;
    if (addDays > 6)
        addDays = addDays % 7;
    switch(addDays)
    {
        case 0: cout << "The calculated day is Sunday.";
            break;
        case 1: cout << "The calculated day is Monday.";
            break;
        case 2: cout << "The calculated day is Tuesday.";
            break;
        case 3: cout << "The calculated day is Wednesday.";
            break;
        case 4: cout << "The calculated day is Thursday.";
            break;
        case 5: cout << "The calculated day is Friday.";
            break;
        case 6: cout << "The calculated day is Saturday.";
            break;
        default: cout << "Not valid choice.";
    }
    cout << endl;
    return addDays;
}


main/source file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include <iomanip>
#include "dayType.h"

using namespace std;

//Source file function declaration
void showSelections();

int main() {
    
    dayType userDay;
    int currentDay;
    int addDays;
    int test;
    string day;
    
    
    do
    {
        test = 0;
        showSelections();
        cin >> currentDay;
        cout << endl;
        
        if (currentDay == 0)
        {
            userDay.setDay("Sunday");
        }
        else if (currentDay == 1)
        {
            userDay.setDay("Monday");
        }
        else if (currentDay == 2)
        {
            userDay.setDay("Tuesday");
        }
        else if (currentDay == 3)
        {
            userDay.setDay("Wednesday");
        }
        else if (currentDay == 4)
        {
            userDay.setDay("Thursday");
        }
        else if (currentDay == 5)
        {
            userDay.setDay("Friday");
        }
        else if (currentDay == 6)
        {
            userDay.setDay("Saturday");
        }
        else if (currentDay == 9)
        {
            cout << "Exiting...";
            return 0;
        }
        else
        {
            cout << "Not a valid choice." << endl;
            test = -37;
        }
    }
    
    while (test < 0);
    userDay.printDay();
    cout << endl;
    
    userDay.showDay(currentDay);
    cout << endl;
    userDay.nextDay(currentDay);
    cout << endl;
    userDay.prevDay(currentDay);
    cout << endl;
    
    cout << "Enter the number of days to add: " << endl;
    cin >> addDays;
    cout << endl;
    
    userDay.calcDay(currentDay, addDays);
    cout << endl;
    
    cout << endl << endl;
    system("pause");
    return 0;
}

// Function to display weekday selections.
void showSelections()
{
    cout << "/tPlease enter a day of the week" << endl;
    cout << "0 for Sunday" << endl;
    cout << "1 for Monday" << endl;
    cout << "2 for Tuesday" << endl;
    cout << "3 for Wednesday" << endl;
    cout << "4 for Thursday" << endl;
    cout << "5 for Friday" << endl;
    cout << "6 for Saturday" << endl;
    cout << "9 to exit" << endl;
    
    
}

The signature of a function declaration must match the signature in the implementation. Do you notice any claring differences here?
1
2
3
4
5
6
7
8
9
10
11
class dayType
{
  // ...
    void printDay() const;
  // ...
};

void dayType::printDay()    
{
  // ...
}
Topic archived. No new replies allowed.