내에서 메소드 인자로 합격 클래스 멤버 변수는 간단한 예제 코드입니다이 아니 최고의 :OOP 디자인 - 여기 클래스
class Car
{
public:
void doSomething()
{
// doing something
onEngineFailure();
}
private:
void onEngineFailure()
{
// Operate on m_Engine
}
private:
Engine m_Engine;
};
전달 멤버를 인수로 : 인수를 거치지 않고 멤버 사용
: 첫 번째 예
class Car
{
public:
void doSomething()
{
// doing something
onEngineFailure(m_Engine);
}
private:
void onEngineFailure(const Engine& engine)
{
// Operate on engine
}
private:
Engine m_Engine;
};
는 방법 onEngineFailure
클래스의 멤버 변수 m_Engine
에서 직접 동작한다. onEngineFailure
이 작동하는 엔진과 엔진을 하나만 가질 수 있으므로 함수 인수로 전달할 필요가 없습니다. 항상 m_Engine
입니다.
두 번째 예에서 메서드 onEngineFailure
은 인수로 전달 된 엔진에서 작동합니다. 어쨌든 항상 m_Engine
이 될 것입니다.
그럼 어느 디자인이 더 정확합니까? 메서드가 이미 멤버 변수에 액세스하고 있고 메서드가 항상 해당 변수에서만 작동하는 경우 인수로 인수를 전달하는 이유는 무엇입니까? 그러나 글로벌 변수에 대해서는 동일하지만 글로벌 변수는 가능한 한 최소한 사용해야합니다.
나는 1 하나 더 말하고 싶지만. –