コードをコンパイルしようとすると、次のエラーが発生します。
./usuario.h:64:37: error: call to implicitly-deleted copy constructor of 'Cadena' Cadena direccion() const { return direccion_; } ^~~~~~~~~~ ./../P1/Cadena/cadena.h:11:3: note: copy constructor is implicitly deleted because 'Cadena' has a user-declared move constructor Cadena(Cadena&& c);
usuario.cpp:14:3: error: call to implicitly-deleted copy constructor of 'Cadena'
nombre_(nombre), apellidos_(apellidos), direccion_(direccion), password_(password){
^ ~~~~~~
Cadena のコンストラクターは次のとおりです。
Cadena(const size_t t=0, const char c=' ');
Cadena(Cadena&& c);
Cadena(const char* c);
そして移動コンストラクター:
Cadena::Cadena(Cadena&& c) : tam_(c.tam_) {
cadena_ = new char[tam_+1];
strcpy(cadena_, c.cadena_);
c.tam_=0;
delete[] c.cadena_;
c.cadena_ = new char[1];
c.cadena_ = "";
}
usuario.h の宣言は次のとおりです。
//........
public:
Cadena id() const { return id_; }
//....
private:
Cadena direccion_;
クラス Cadena は完全に機能しますが、今はそれを使用する必要があり、コンパイラはこれらのエラーを削除します。私は特別なことは何もしていないと思います.Cadena型のオブジェクトを返す/割り当てるだけです..
あなたのフィードバックを期待しています。
よろしくお願いします。