मैंने C ++ 11 मानक को आज़माना शुरू कर दिया है और मुझे यह सवाल मिला है जो बताता है कि कैसे एक intor विधि या इस तरह से बचने के लिए उसी कक्षा में दूसरे ctor से अपने ctor को कॉल करें। अब मैं कोड के साथ एक ही चीज़ की कोशिश कर रहा हूँ जो इस तरह दिखता है:
HPP:
class Tokenizer
{
public:
Tokenizer();
Tokenizer(std::stringstream *lines);
virtual ~Tokenizer() {};
private:
std::stringstream *lines;
};
सीपीपी:
Tokenizer::Tokenizer()
: expected('=')
{
}
Tokenizer::Tokenizer(std::stringstream *lines)
: Tokenizer(),
lines(lines)
{
}
लेकिन यह मुझे त्रुटि दे In constructor ‘config::Tokenizer::Tokenizer(std::stringstream*)’:
/path/Tokenizer.cpp:14:20: error: mem-initializer for ‘config::Tokenizer::lines’ follows constructor delegationरहा है :
मैंने सूची में पहले और अंत में टोकनिनेज़र () भाग को स्थानांतरित करने की कोशिश की है, लेकिन इससे कोई मदद नहीं मिली।
इसके पीछे क्या कारण है और मुझे इसे कैसे ठीक करना चाहिए? मैंने इसके बजाय lines(lines)शरीर के साथ जाने की कोशिश की है this->lines = lines;और यह ठीक काम करता है। लेकिन मैं वास्तव में शुरुआती सूची का उपयोग करने में सक्षम होना चाहूंगा।