byłem czytania konstruktora dotyczące przemieszczania się i zrobiłem ten kod w VS 2013 ...Move Konstruktor - nieprawidłowy typ dla niewykonaniem konstruktora VS 2013
class Student
{
unique_ptr<string> pName_;
public:
Student(string name) : pName_(new string(name)) { }
~Student() { }
Student(Student&&) = default; // Here I get the error.
void printStudentName(void) { cout << *pName_ << endl; }
};
int main(void)
{
vector<Student> persons;
Student p = Student("Nishith");
persons.push_back(std::move(p));
persons.front().printStudentName();
return 0;
}
otrzymuję "Student::Student(Student&&)
: nie jest to specjalna funkcja, która członek może być domyślnie "kiedy próbowałem skompilować ...
Czy ktoś może mi wyjaśnić, dlaczego otrzymuję ten błąd?
Lepiej dodać także znacznik bazowy C++. W każdym razie, wiesz, że używanie alokacji dynamicznej dla ciągu znaków jest całkowitym marnotrawstwem? – Deduplicator
Masz na myśli w studio wizualnym, prawda? – Deduplicator
@Deduplicator: OK, punkt wzięty. Tak, miałem na myśli Visual Studio 2013. – NJMR