나는 여러 파생 클래스에 의해 상속되는 기본 클래스를가집니다. 내가 baseClass 포인터 autopointer 배열을 만들고 싶습니다. 나는 약간의 컴파일 시간 오류가 autopointer 사람들을 초기화 할 때 메신저 하나의 창, 내가 Valgrind의 사용하지 않는 동안, 그럼 난, 잘 작동auto_ptr 배열을 만들 수 있습니까?
std::auto_ptr<base>pbase[3];
std::auto_ptr<base> b1(new derived1());
std::auto_ptr<base> b2(new derived2());
std::suto_ptr<base> b3(new derived3());
pbase[0] = b1;
pbase[1] = b2;
pbase[2] = b3;
, 난 메모리 누수 문제를 해결하는 방법처럼하려고 노력 나는 누출을위한 부스트 프레임 워크를 사용한다. 컴파일 오류
: A.cpp의
class A{
public:
std::auto_ptr<base>pbase[2];
}
이
A::A():pbase[0](new derived1()), pbase[1](new derived2()){
}
내가 오류 C2059:syntax error : '['
오류 메시지도 함께 게시하십시오. – arne
가상 소멸자가 있습니까? 또한 auto_ptr 대신 unique_ptr 및 shared_ptr을 사용하십시오. 포인터를 저장하기 위해 std :: vector 사용에 대해 생각해보십시오. –
'auto_ptr'은 이상한 복사 동작으로 인해 사용되지 않습니다. 'std :: unique_ptr'로 전환하는 것을 고려하십시오. – nijansen