나는 다음과 같은 가상 함수EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0으로)가 발생
namespace Book
{
class Secure
{
virtual Result setPassword(const std::map<std::string, std::vector<std::string> >& params)=0;
}
}
내가 다른 테스트 클래스가되어있는 클래스가 방법은 엑셀에서 암호와 사용자 이름을 가져 와서 secureParams 맵으로 설정하고 현재 파일의 암호를 설정합니다.
bool initialize(std::string bookPath, std::string loginPath, std::string userName, std::string password)
{
Book::SharedPtr<Book::Secure> secure;
bool result;
std::map<std::string, std::vector<std::string> > secureParams;
std::vector<std::string> userNames;
std::vector<std::string> passwords;
userNames.push_back(userName);
passwords.push_back(password);
secureParams.insert(std::pair<std::string, std::vector<std::string>>("USERNAME",userNames);
secureParams.insert(std::pair<std::string, std::vector<std::string>>("PASSWORD",passwords);
secure->setPassword(secureParams);
secure->getLoginFile(loginPath.c_str());
result=Book::SecureBook::canLogin(bookPath.c_str(),secure);
return result;
}
알 수없는 파일을 말하는 실행 종료 코드 : 실패 알 수없는 C++ 예외가 시험 기관에 던져.
XCode에서 디버깅 할 때 EXC_BAD_ACCESS (code = 1, address = 0xc0000000) 오류가 줄에 표시됩니다. secure-> setPassword (secureParams);
저는 하루 종일 문제를 디버깅하려고했습니다. 어떤 도움에 감사드립니다 :) 사전 : 당신은 책에서 상속 대상 : 안전, 추상 기본 클래스에 단지 스마트 포인터를하지 않는 것
'보안'을 초기화하지 않았습니다 ... 관련이있을 수 있습니까? – rodrigo
'address = 0x0'는'NULL' (또는'nullptr') 역 참조를 나타낼 가능성이 큽니다 ... 가상 함수가'= 0'으로 설정되었습니다 - 아마도 파생 클래스에서 가상 함수를 정의하지 않았으므로 추상 함수를 호출? – twalberg
아니요 코드에 영향을주지 않습니다 ... –