Текущий исходный код:C++ INT для преобразования строки
string itoa(int i)
{
std::string s;
std::stringstream out;
out << i;
s = out.str();
return s;
}
class Gregorian
{
public:
string month;
int day;
int year; //negative for BC, positive for AD
// month day, year
Gregorian(string newmonth, int newday, int newyear)
{
month = newmonth;
day = newday;
year = newyear;
}
string twoString()
{
return month + " " + itoa(day) + ", " + itoa(year);
}
};
И моя главная:
Gregorian date = new Gregorian("June", 5, 1991);
cout << date.twoString();
Я получаю эту ошибку:
mayan.cc: In function ‘int main(int, char**)’:
mayan.cc:109:51: error: conversion from ‘Gregorian*’ to non-scalar type ‘Gregorian’ requested
Кто-нибудь знает, почему Int к преобразованию строк здесь не удается? Я довольно новичок в C++, но знаком с Java, я потратил много времени на поиск прямого ответа на эту проблему, но в настоящее время я в тупике.
Вы можете избавиться от 'станд :: строка s,' 'в itoa' и просто' вернуть out.str(); '. Возвращаемая строка будет построена до уничтожения строки. Разумные компиляторы, скорее всего, производят один и тот же код в обоих случаях, но дополнительные временные предложения обычно предлагают людям, которые смотрят на ваш код, который вы не понимаете или не доверяете правилам C++. –
Несвязанный, но вы имели в виду функцию 'toString()'? – Neil
Исходя из Java, я не знал, имел ли в C++ метод toString(). Я не хотел перегружать его, если мне это не нужно. –