다음과 비슷한 코드를 컴파일하려고하면 제목에 오류 메시지가 표시됩니다.클래스 std :: vector <Object>에는 'x'라는 멤버가 없습니다
class Object{
public:
Object(){
//Something
}
void x(){
//Something
}
}
void function(std::vector<Object>* things){
int someNumber;
//Some algorithm to get the value of someNumber.
things->resize(someNumber);
for(int i=0;i<someNumber;i++){
things[i].x();
}
}
int main(){
vector<Object> things;
function(&things);
return 0;
}
무엇이 문제의 원인 일 수 있습니까? 당신이 벡터의 배열 같은 things
을 치료한다 []
를 사용할 때
** -이 1 ** 때문에 **하지 실제 코드 **. 재현 가능한 예가없는 것으로 결론 지었다. 즉, 호출없이 멤버 함수'x'를'o.x'로 참조 할 수 없습니다. –
'things'는 포인터입니다. 'std :: vector
대단히 죄송합니다. 나는'things [i] .x()'라고 쓰려고했다. – Letokteren