मैं सी ++ प्रारंभिक ऑब्जेक्ट्स 7 वें संस्करण के साथ शुरू करने वाली पुस्तक में प्रोग्रामिंग चुनौतियों में से एक पर काम कर रहा हूं और असाइनमेंट में से एक एसटीएल स्ट्रिंग क्लास से प्राप्त कक्षा बनाने के लिए कहता है। मैं यह समझने के उद्देश्य से प्रश्न पोस्ट कर रहा हूं कि मुझे क्या करने की अनुमति है और मुझे समाधान को कैसे लागू करना है ताकि कोई भी अधिक उन्नत सुझाव प्रदान न कर सके।मैं एसटीएल स्ट्रिंग क्लास में सदस्य चर का उपयोग कैसे करूं?
- के रूप में यह पाठ में लिखा है प्रश्न -
Palindrome परीक्षण
विलोमपद एक स्ट्रिंग है आगे के रूप में ही पिछड़े पढ़ता है। उदाहरण के लिए, शब्द माँ, पिता, मैडम, और रडार पालिंड्रोम हैं। से प्राप्त class Pstring
लिखें। Pstring class
एक सदस्य समारोह
bool isPalindrome()
कि निर्धारित करता है कि स्ट्रिंग विलोमपद कहते हैं। एक निर्माता शामिल करें जो STL string
ऑब्जेक्ट को पैरामीटर के रूप में लेता है और इसे स्ट्रिंग बेस क्लास कन्स्ट्रक्टर में पास करता है। एक मुख्य प्रोग्राम होने से अपनी कक्षा का परीक्षण करें जो उपयोगकर्ता को स्ट्रिंग में प्रवेश करने के लिए कहता है। प्रोग्राम एक स्ट्रिंग ऑब्जेक्ट को प्रारंभ करने के लिए स्ट्रिंग का उपयोग करता है और फिर यह निर्धारित करने के लिए isPalindrome() को कॉल करता है कि स्ट्रिंग दर्ज एक पालिंड्रोम है या नहीं।
आपको स्ट्रिंग क्लास के सबस्क्रिप्ट ऑपरेटर [] का उपयोग करना उपयोगी हो सकता है: यदि str एक स्ट्रिंग ऑब्जेक्ट है और के एक पूर्णांक है, तो str [k] स्ट्रिंग में स्थिति k पर कैरेक्टर देता है।
- अंत -
मेरा मुख्य सवाल है कि कैसे मैं सदस्य चर जो मेरे स्ट्रिंग वस्तु धारण का उपयोग करते हैं, तो वर्ग मैं से Pstring पाने रहा एक वर्ग मैं नहीं लिखा था और मैं पता नहीं कैसे यह अपने सदस्यों को लागू करता है?
उदाहरण के लिए,
#include <string>
using namespace std;
class Pstring : public string
{
public:
Pstring(std::string text)
: string(text) { }
bool isPalindrome()
{
// How do I access the string if I am passing it to the base class?
// What I think I should do is...
bool is_palindrome = true;
auto iBegin = begin();
auto iEnd = end() - 1;
while (iBegin < iEnd && is_palindrome)
{
if (*iBegin++ != *iEnd--)
is_palindrome = false;
}
return is_palindrome;
// But I think this is wrong because...
// #1 The book did not discuss the keyword auto yet
// #2 The book discussed when a class is derived from another class,
// how the members from super class will be accessible to the sub class.
// However, with this assignment, I don't see how to access the members.
}
}
कारण लग रहा है मैं जैसे मैं कर रहा हूँ इस गलत तरीके से क्योंकि काम सबस्क्रिप्ट अंकन का उपयोग का उल्लेख है, तथापि, मुझे समझ नहीं आता कैसे सबस्क्रिप्ट संकेतन का उपयोग करने के लिए अगर मैं डॉन ' वेरिएबल का नाम पता है जहां स्ट्रिंग संग्रहित है।
किसी भी मदद की बहुत सराहना की जाएगी क्योंकि लेखक समाधान प्रदान नहीं करता है जब तक कि मैं एक प्रशिक्षक नहीं हूं जो मेरी राय में काफी लंगड़ा है। इसे शायद इस तथ्य से करना है कि यह एक अकादमिक पाठ है।
कभी STL वर्गों से निकाले जाते हैं। हमेशा एक बुरा विचार। आप इसके बजाय संरचना का प्रयास क्यों नहीं करते? – Lalaland
लेखक समाधान प्रदान नहीं कर सकता क्योंकि वह मूर्ख है। – Duck
@ ईथन स्टीनबर्ग मैं पूरी तरह से सहमत हूं, हालांकि, यह असाइनमेंट विशेष रूप से ऐसा करने के लिए कहता है। –