에서 기본 클래스의 벡터에 클래스를 파생 밀어 나는 다음과 같은 코드가 있습니다는 C++
class Official {
public:
explicit Official(int iRow, int iColumn, int iRankHolder, int** aiBoardHolder);
};
class General : public Official {
public:
explicit General(int iRow, int iColumn, int iRankHolder, int** aiBoardHolder) : Official(iRow, iColumn, iRankHolder, aiBoardHolder) {};
};
class Map {
private:
std::vector<Official> aoOfficialStack;
public:
void generateOfficialObject();
};
void Map::generateOfficialObject() {
aoOfficialStack.push_back(General(1, 2, 3, aiBoardPosition));
}
질문 왜이 오류를 얻고있다 호출 한 후를 generateOfficalObject()?
오류 C2664 '무효 표준 : : 벡터> ::와 push_back (const를 공식 &는)': \ 사용자 \ 바탕 화면 \ 프로젝트 \ 프로젝트 \ 사용자 : '공식 & &'프로젝트 C에 '일반'에서 인수 1을 변환 할 수 없습니다 \ board \ board.cpp 12
대단히 감사합니다!
표시되는 오류를 생성하는 코드가 아닙니다. 'FiveStarGeneral'은 리턴 타입이 없습니다 (생성자가 아니기 때문에 클래스 이름이 다릅니다). 실제 코드를 게시하십시오. 어쨌든 Object Slicing을 찾아보십시오. 당신은 당신이 성취하고자하는 것이 현 상태로 일할 수 없음을 보게 될 것입니다. – Angew
죄송합니다. 나는 이미 코드를 편집했다. 그것은 놓쳤다. 이것은 이제 실제 코드와 실제 오류입니다. 죄송합니다. – Redis1001
코드가 컴파일 되더라도 예상 한대로 작동하지 않을 가능성이 있습니다. [object slicing] (http://stackoverflow.com/q/274626/2069064)을 참조하십시오. – Barry