类中的字符串// C++

may*_*y00 1 c++ string class function

我是C++的新手,并且在课堂上遇到麻烦

Date.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;
}
Run Code Online (Sandbox Code Playgroud)

Date.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
Run Code Online (Sandbox Code Playgroud)

问题在于printIt()功能.Visual Studio说声明是不兼容的.当我改变功能的类型int问题消失但为什么strings 有问题?

Dav*_*rtz 5

如果Date.h要使用string该类,则必须在之前 Date.h之中 包含必要的头文件Date.h.