Инициализация члена при использовании делегированного конструктора

Я начал опробовать стандарт C ++ 11 и обнаружил, чтоэтот вопрос, который описывает, как вызвать ваш ctor из другого ctor в том же классе, чтобы избежать использования метода init или тому подобного. Теперь я пытаюсь сделать то же самое с кодом, который выглядит следующим образом:

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 Я пытался переместить часть Tokenizer () первым и последним в списке, но это не помогло.

В чем причина этого и как мне это исправить? Я пытался переместитьlines(lines) к телу сthis->lines = lines; вместо этого и работает нормально. Но я действительно хотел бы иметь возможность использовать список инициализатора.

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос