Według this stronie, istnieje pięć sposobów przypisywania coś do łańcucha:Mogę przypisać podwójny ciąg?
string (1) string& operator= (const string& str);
c-string (2) string& operator= (const char* s);
character (3) string& operator= (char c);
initializer list (4) string& operator= (initializer_list<char> il);
move (5) string& operator= (string&& str) noexcept;
To dlaczego mogę skompilować poniższy tekst? Które z tych opcji wykorzystał kompilator?
#include <iostream>
#include <string>
int main()
{
std::string s;
double d = 1.0;
s = d;
std::cout << s << std::endl;
}
I to nie jest po prostu bezsensowne pytanie - Spędziłem długie godziny próbując znaleźć to zadanie s = d
w moim kodzie. Oczywiście powinno to być s = std::to_string(d)
.
Kompilator: GCC 4.8.4.
Co jest drukowany? Czym jest 's'? –
czy naprawdę masz na myśli przydzielić lub masz na myśli ** przekonwertować ** podwójnie na ciąg? – Alex
@Alex - To było zadanie w moim kodzie – HEKTO