Inicjalizacja elementu przy użyciu delegowanego konstruktora

Zacząłem wypróbowywać standard C ++ 11 i znalazłemto pytanie, które opisuje, jak wywołać swojego cora z innego cora w tej samej klasie, aby uniknąć posiadania metody inicjującej lub podobnej. Teraz próbuję tego samego z kodem, który wygląda tak:

hpp:

class Tokenizer
{
public:
  Tokenizer();
  Tokenizer(std::stringstream *lines);
  virtual ~Tokenizer() {};
private:
  std::stringstream *lines;
};

cpp:

Tokenizer::Tokenizer()
  : expected('=')
{
}

Tokenizer::Tokenizer(std::stringstream *lines)
  : Tokenizer(),
    lines(lines)
{
}

Ale to daje mi błąd:In constructor ‘config::Tokenizer::Tokenizer(std::stringstream*)’: /path/Tokenizer.cpp:14:20: error: mem-initializer for ‘config::Tokenizer::lines’ follows constructor delegation Próbowałem przenieść pierwszą i ostatnią część Tokenizer na liście, ale to nie pomogło.

Jaki jest tego powód i jak powinienem to naprawić? Próbowałem przesunąćlines(lines) do ciała zthis->lines = lines; zamiast tego działa dobrze. Ale naprawdę chciałbym móc korzystać z listy inicjatorów.

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion