我是 C++ 的新手,对类中的字符串感到困扰
日期.cpp:
#include "stdafx.h"
#include "Date.h"
#include <sstream>
#include <string>
using namespace std;
Date::Date(int day,int month,int year )
{
setDate(day,month,year);
}
void Date::setDate(int day,int month,int year)
{
this->day = day;
this->month = month;
this->year = year;
}
string Date::printIt()
{
std::stringstream res;
res<<this->day<<"/";
res<<this->month<<"/";
res<<this->year;
return res.str;
}
Date operator+(const Date &date,int day)
{
Date newDate(date.day,date.month,date.month);
newDate.day += day;
if(newDate.day > 30)
{
newDate.day%=30;
newDate.month+=1;
if(newDate.month>=12)
{
newDate.month%=30;
newDate.year+=1;
}
}
return newDate;
}
日期.h:
#ifndef DATE_H
#define DATE_H
using namespace std;
class Date
{
private:
int day,month,year;
Date(){}
public:
Date(int day,int month,int year);
void setDate(int day,int month,int year);
string printIt();
friend Date operator+(const Date &date, int day);
};
#endif
问题是 printIt()
函数。 Visual Studio 表示声明不兼容。当我将函数类型更改为 int
时,问题消失了,但为什么 string
有问题?
最佳答案
如果 Date.h
将使用 string
类,则必须在 之前包含必要的头文件Date.h
或在 Date.h
。
关于c++ - 类中的字符串//C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582286/