次の 2 つのクラスがあるとします。
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 参照を使用する必要がありますか?