2012-04-23 16 views
5

वर्तमान स्रोत कोड के लिए:सी ++ पूर्णांक स्ट्रिंग रूपांतरण

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); 
     } 

}; 

और अपने मुख्य में:

mayan.cc: In function ‘int main(int, char**)’: 
mayan.cc:109:51: error: conversion from ‘Gregorian*’ to non-scalar type ‘Gregorian’ requested 

क्या किसी को पता है कि क्यों पूर्णांक:

Gregorian date = new Gregorian("June", 5, 1991); 
cout << date.twoString(); 

मैं इस त्रुटि मिल रही है स्ट्रिंग रूपांतरण करने में यहां असफल रहा है? मैं सी ++ के लिए बिल्कुल नया हूं लेकिन जावा से परिचित हूं, मैंने इस समस्या के सीधा जवाब की तलाश में काफी समय बिताया है लेकिन वर्तमान में स्टंप हो गया हूं।

+2

आप' std :: स्ट्रिंग रों से छुटकारा पा सकते ': new ड्रॉप। स्ट्रिंगस्ट्रीम नष्ट होने से पहले रिटर्न स्ट्रिंग का निर्माण किया जाएगा। उचित कंपेलरों की संभावना दोनों मामलों में सटीक एक ही कोड का उत्पादन करेगी, लेकिन अतिरिक्त अस्थायी लोगों को आपके कोड को देखने वाले लोगों को सुझाव देना पड़ता है कि आप सी ++ स्कोपिंग नियमों को समझ या भरोसा नहीं करते हैं। –

+0

असंबद्ध, लेकिन क्या आप 'toString() 'फ़ंक्शन का नाम देने का मतलब रखते थे? – Neil

+0

जावा से आ रहा है, मुझे नहीं पता था कि सी ++ में पहले से ही एक toString() विधि थी। अगर मुझे इसकी आवश्यकता नहीं थी तो मैं इसे अधिभारित नहीं करना चाहता था। –

उत्तर

15

आप Gregorian पॉइंटर Gregorian पर असाइन कर रहे हैं। `` Itoa` में और सिर्फ `out.str वापसी();;

Gregorian date("June", 5, 1991); 
+1

+1 मैं बहुत धीमी हूं :) – chris

+0

@ क्रिस ऐसा लगता है कि मैं अंत में टाइप करना सीख रहा हूं :-) – juanchopanza

+0

वाह, यह एक अविश्वसनीय रूप से तेज़ प्रतिक्रिया थी। इस तरह के एक साधारण समाधान के लिए एक बड़ा धन्यवाद। –

संबंधित मुद्दे