구성원 함수의 위임과 같은 항목을 많이 검색했지만 그것에 대해 뭔가를 찾지 못했습니다.구성원 대표 기능
class Foo1 {
int bar(int a, int b = 1, bool c = false);
int bar(int a, bool c);
}
// Can I write it like:
class Foo2 {
int bar(int a, int b = 1, bool c = false);
// This line is my question:
int bar(int a, bool c) : bar(a, 1, c);
}
제 컴파일러는 생성자 초기화 목록을했다하지만 난 곳 위의 같은 것을 읽을 생각 : 어쩌면 내가
는 나는 다음과 같은 일을하려고 ... 잘못된 단어를 검색. 규칙에서 생성자 만 초기화 목록을 가져 오는 예외가 있습니까?
10 개 이상의 함수를 "위임 (delegate)"해야한다면 성능이 저하 될 수 있다고 생각했습니다. 필자는 컴파일러에게 실제 본문 함수를 호출하고 실제 본문을 호출하는 대신 실제 바 함수를 호출해야한다고 더 빨리 생각할 수 있다고 생각했습니다. 내가 잘못 생각 했니? –
@HenrikViebrock 컴파일러가 최적화를 사용한다고 가정하면 컴파일러는 종종 함수 호출 오버 헤드를 제거하여 작은 함수를 "인라인"합니다. 또한, 생성자 mem-initializers는 실제로는 실제로 함수 호출입니다. – aschepler
몰랐습니다. 감사! –