MFC로 UI를 만들다가

내가 만든 클래스로 std::vector 를 이용하려던 중

c:\program files (x86)\microsoft visual studio 10.0\vc\include\xmemory(48): error C2558: class 'CFrameSet' : 복사 생성자를 사용할 수 없거나 복사 생성자가 'explicit'으로 선언되었습니다.

이런 에러가 뜬다. 여기서 'CFrameSet'은 내가 만든 클래스의 이름이다.

vector를 쓰기 위해 복사생성자를 만들어두긴 했는데 깜빡 잊고 파라미터에 const를 빼먹은 것이 문제였다.



FrameSet.h

#pragma once
class CFrameSet
{
public:
	CFrameSet(void);
	CFrameSet(const CFrameSet& dup);
	~CFrameSet(void);

	...

public:
	void operator =(const CFrameSet& dup);
};




FrameSet.cpp
#include "StdAfx.h"
#include "FrameSet.h"

CFrameSet::CFrameSet(void) :
	...
{
	...
}

CFrameSet::CFrameSet(const CFrameSet& dup)
{
	*this = dup;
}

CFrameSet::~CFrameSet(void)
{
	...
}


void CFrameSet::operator =(const CFrameSet& dup)
{
	...
}


Posted by Kugi
,