이 클래스의 객체가 생성 될 때마다 UUID를 생성하는이 작은 클래스를 작성했습니다. 어떤 점에서 인수가없는 복사 생성자
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
class myClass {
public:
boost::uuids::uuid GetUUID();
virtual ~myClass();
myClass() { // constructor
mId = boost::uuids::random_generator()();
std::cout<< "object created with uuid " << mId <<std::endl;
}
private:
boost::uuids::uuid mId;
}
, 나는 벡터에 이러한 개체를 밀고 단순 대입 연산자를 사용하여 다른 벡터와 그 벡터를 동일시하고있다. 새 벡터의 객체가 새 UUID를 생성하지 않도록하려면 복사 생성자를 작성하고 싶습니다. 그러나 보시다시피 생성자는 아무런 인수가 필요하지 않습니다. 그래서 복사 생성자를 쓰는 방법을 모르겠습니다. 게다가 하나의 UUID 대신 여러 개의 변수가있는 경우 어떻게 처리해야합니까? 당신은이를 구현하지 않는 경우, 컴파일러가 생성 한 사람이 얕은 사본을 다할 것을
myClass(const myClass& other)
{
mId = other.mId;
}
또한 할당 연산자
myClass& operator=(const myClass& other)
{
mId = other.mId;
return *this;
}
참고 :
'mId'는 어떻게 선언됩니까? – sharptooth
할당 연산자를 사용하여 비교하고 있습니까? 또는 '평등'이란 무엇을 의미합니까? 그리고 '생성자는 인수가 필요합니다'라는 말은'two' 인수 또는'no' 인수를 의미합니까? – RedX
실수로 죄송합니다. 나는 그들을 바로 잡았다. –