내 Class B
이 Class A
에서 멤버 함수를 호출 할 수있게하고 싶습니다. 이것을 접근하는 가장 좋은 방법은 무엇입니까?다른 클래스의 멤버 함수 호출하기 C++
어떤 상황, 여기 내 코드의 축약 버전의 조각입니다
class Time{
public:
Time();
Time(int hour, int minute);
int time_GetHour() const;
-----
private:
int hour;
int minute;
};
int Time::time_GetHour() const{
return hour;
}
class DaTime{
public:
DaTime();
DaTime(Day day, Time start, Time end);
dt_Difference(DaTime &a, DaTime &b) const;
private:
int duration;
Time start;
Time end;
};
int DaTime::dt_Difference(DaTime &a, DaTime &b) const{
int diff_hour = 0;
int diff_min = 0;
int diff = 0;
if(dt_LessThanOrEqual(a,b)){
diff_hour = (b.time_GetHour() - a.time_GetHour())*60;
diff_min = b.time_GetHour() - a.time_GetHour();
diff = diff_hour + diff_min;
return diff;
}
}
나는 내 수업 DaTime
가 나는 것을 볼 수있는 멤버 time_GetHour()
을가 없다고 주장한다 점점 오전 오류입니다. 수정 프로그램에 접근하거나이 오류를 우회하는 가장 좋은 방법은 무엇입니까? 감사. 당신은 단순히 당신이 언급 한 멤버 변수에 액세스하여 문제를 해결할 수있다, 당신이 그것을 상속의 내부 대신 Time
클래스를 사용하려면 명확으로
그것은'DaTime'이 기능을 확장 할 수 또는 내부적으로'Time'를 사용하도록되어 무엇에 따라 달라집니다. 답변을 보려면 [여기] (http://stackoverflow.com/q/21692193/1387612)를 참조하십시오. – janisz
시간 _ 무엇을 원하십니까? 그리고 왜 메소드 이름 앞에'stuff_'을 넣고 있습니까? – Sneftel
'time_GetHour'는'Time' 클래스의 인스턴스화에서 이미 존재하는'hour'를 반환하기를 원합니다. –