Ich habe eine Klasse Screen
, die Member-Inhalt mit std::string(size_t, char)
Konstruktor initialisiert hat.Kann nicht verwenden String (Größe_t, Char) Konstruktor
#include <iostream>
#include <string>
struct Screen {
friend std::ostream& print(std::ostream& os ,const Screen& screen);
Screen() = default;
Screen(std::size_t w, std::size_t h) :
width(w), height(h), content(w * h , ' ') {}
Screen(std::size_t w, std::size_t h, char c) :
width(w), height(h), content(w * h, c) {}
private:
std::size_t width = 24;
std::size_t height = 80;
std::size_t cursor = 0;
std::string content(width * height, ' ');
};
Ich habe versucht, eine Zeichenfolge in ähnlicher Weise im Inneren des Haupt erklärt, aber ich den gleichen Fehler, ich bin, um herauszufinden, nicht in der Lage, was ich falsch hier tue.
structures.cpp:15:25: error: 'width' is not a type
std::string content(width * height , ' ');
^
structures.cpp:15:42: error: expected identifier before '\x20'
std::string content(width * height , ' ');
^
structures.cpp:15:42: error: expected ',' or '...' before '\x20'
Warum verwenden Sie nicht einfach die Initialisierungsliste, um die 'std :: string' zu erstellen? Welchen Zweck dient es zu versuchen, zu initialisieren, wo Sie Ihre Zeichenkette hier deklariert haben? String content ((width * height), ''); '? – PaulMcKenzie