В следующем коде я ввожу вектор строк, который должен быть списком сообщений. Затем оператор [] должен вернуть мне указанное сообщение. Например, если я введу:
vector<string> m = {
"Element 0",
"Attack - at - midnight",
"Element 2"};
в следующий класс, сказав: SelfDestructingMessage sdm(m);
, то sdm[1];
должно вернуть "Attack - at - midnight"
. Однако вместо этого я получаю "\xA0\xABO\xF2\x98U\0\0 at - midnight"
. Любые советы в правильном направлении будут с благодарностью!
class SelfDestructingMessage { // This is my class, fairly straight forward
private:
vector<string> messages_;
public:
// Constructor
SelfDestructingMessage(vector<string>);
// Getter
vector<string> messages() const {return messages_;}
// Overloaded Operator
string const& operator[](size_t);
}
SelfDestructingMessage::SelfDestructingMessage(vector<string> messages){ // Constructor
messages_ = messages;
}
string const& SelfDestructingMessage::operator[](size_t index){ // Having trouble here
long signed_index = index;
string const& message = messages().at(signed_index);
return message;
}