#ifndef DATE_H
#define DATE_H
#include <iostream>
#include <iomanip>
using namespace std;
class Date{
private:
unsigned int day;
unsigned int month;
string monthName;
unsigned int year;
public:
Date();
void printNumeric() const;
void printAlpha() const;
};
#endif
Мой заголовочный файл
#include "Date.h"
#include <string>
using namespace std;
Date::Date(){
month = 1;
monthName = "January";
day = 1;
year = 1970;
}
void Date::printNumeric() const{
cout << month << "/" << day << "/" << year;
}
void Date::printAlpha() const{
cout << Date::monthName << " " << day << ", " << year;
}
и фактический код. Моя функция printNumeric работает нормально в соответствии с тестовым стендом, но моя printalpha не создает имя месяца строки. Должен ли я что-то делать с monthName, чтобы он вводил пользовательский ввод для имени месяца?
Удалить дату :: и она должна работать
Использование Date :: будет таким же, как использование этой или только переменной-члена, если вы находитесь в пределах класса.
но вам лучше использовать
cout << this->monthName << " " << day << ", " << year;
или
cout << monthName << " " << day << ", " << year;
Использовать Date::
когда у вас есть статический метод для вызова или публичный член для инициализации вне области класса, например.
кстати, на всякий случай, если у вас есть другой язык, строка является частью iostream. Таким образом, не используйте using namespace std;
но std::cout
вы тогда поймете это, когда компилятор произведет ошибку.
Date::monthName
, простоmonthName
будет в порядкеcout << monthName << " " << day << ", " << year;
вместо этого (безDate::
префикс).