2013-08-13 7 views

답변

1

캡쳐 만 사용하면 std :: function <>을 사용해야 할 것입니다. 당신은 내가 C에서 결코 말하지 않을이

int main() { 
    A self; 
    test.func = [&self](){ return self.x + self.y; }; 
} 

같은 다음

struct A { 
    int x, y; 
    std::function<int()> func; 
}; 

과 코드를 생각 원했던 것처럼 늘 좋은 '이'동작을 ++ (심지어 고토와)하지만 나는 오히려 확실 해요 이것은 실제로 일을하는 좋은 방법이 될 것입니다. 예, 당신 CAN하지만 이렇게하는 것이 더 좋은 방법이 아닙니까? 생각할 거리.

+0

또는 람다가 'A' 유형의 매개 변수를 받도록 설정하십시오. 특히 더 우아하지는 않습니다. –

+0

Jake, 유일한 방법은 인수로 전달하거나 가시화하는 것입니까? 너무 슬퍼서 JS 에서처럼 할 수 있다고 생각했습니다. – Artem

+0

그게 당신이 C를 롤에 OOP를 모방하려고 내게 너무 많이 생각 나게 test.func (테스트)처럼 전화해야합니다. – Jake

관련 문제