2011-11-12 3 views
-1

두 객체 모두 두 개의 매개 변수가있는 함수가 있습니다. 함수 내에서 이러한 객체를 변경하고 나중에 변경 사항을 확인해야합니다. 하지만 포인터가 작동하지 않습니다. 어떤 생각?함수 내부의 객체를 변경하십시오.

void foo(apple &a,apple &b) 
{ 
    //change a and b 
} 
main() 
{ 
    apple a,b; 
    foo(a,b); 
    //a and b are the same as befor calling foo ` 
} 

감사합니다.

+0

방법 내에서이 개체를 "변경"하고 있습니까? – madth3

+6

문제를 나타내는 실제 * 컴파일 가능한 코드를 게시하십시오. 객체에 대한 참조를 전달하는 원칙은 정확해야합니다. –

+0

그리고 포인터도 잘 작동해야합니다. –

답변

1

전달중인 클래스의 메서드를 변경한다는 의미입니까? 그것이 의미하는 것이라면 '->'을 사용해야합니다.

class apple { 
    public: 
     int weight; 
} 

void foo(apple *a,apple *b) { 
    a->weight = b->weight; 
} 

main() { 
    apple a,b; 
    foo(&a,&b); 
} 
+0

대단히 감사합니다. 그것은 효과가 있었다. – Pegah

관련 문제