假设我有以下两个类:
class Person
{
public:
Person(string name, string surname)
: _name(move(name)), _surname(move(surname)) { }
...
private:
string _name;
string _surname;
};
class Student : public Person
{
public:
Student(string name, string surname, Schedule schedule)
: Person(move(name), move(surname)), _schedule(move(schedule)) { }
...
private:
Schedule _schedule;
};
int main()
{
Student s("Test", "Subject", Schedule(...));
...
return 0;
}
这是移动语义的一个很好的用法吗?如您所见,Student 构造函数中有一层“move-s”。是否可以在不使用引用将参数转发到基本构造函数的情况下避免move
函数调用开销?const
或者也许......每当我需要将参数转发给基本构造函数时,我应该使用 const 引用吗?