간단한 클래스가 있습니다.게터에 비용이 들지 않습니까?
class A {
public:
int get() const;
private:
void do_something();
int value;
}
int A::get() const {
return value;
}
getter 함수는 간단하고 직관적입니다. 게터가 그들을 사용해야하므로 do_something에서 value
에 액세스하려면 get()
을 사용해야합니다. 내 질문은 : 컴파일러는 getter를 최적화 할 것이므로 데이터에 직접 액세스하는 것과 동일 할 것인가? 또는 직접 액세스하면 성능이 향상 될 것입니다 (디자인이 나쁜 것은 무엇입니까?).
A::do_something()
{
x = get();
// or...
x = value;
}
실제 질문은 물론입니다. * 중요합니까 *? 왜냐하면 그렇지 않다면, 누가 신경 써? 그리고 만약 그렇다면, 당신 만이 당신의 컴파일러가 최적화를 수행 하는지를 확인할 수 있습니다. –