-1
아래 코드를 사용하여 문제를 설명하는 것이 더 나을 수도 있습니다.아래의 코드를 주문하는 방법 : 클래스 멤버 함수가 클래스 인수가 아닌 비 멤버 함수를 호출합니까?
참고 : 주석 처리 된 줄을보고 #
으로 시작하는 것으로 충분합니다.
질문 :
어떻게 주문 라인 # 1, # 2, # 3, # 4? 까다로운 부분은 # 2가 # 3에 의존하지만 # 3은 # 1에 의존한다는 것입니다.
(추가 참고 :. 내가 클래스 본문 내에서 생성자를 유지하기 위해 필요했다)
/* --------------------Header-------------------- */
struct Sales_data { /* #1: class definition */
/* #2: member function (calling a non-member function) */
Sales_data(std::istream &is){read(is, *this);
};
std::string bookNo;
unsigned units_sold = {0};
double revenue {0.0 };
};
/* #3: declaration of the non-member function */
std::istream &read(std::istream &is, Sales_data &item) ;
/* --------------------Source-------------------- */
/* #4: definition of the non-member function */
istream &read(istream &is, Sales_data &item) {
/* .... */
}
int main(){
/* .... */
}
+1. 또는 Sales_data 생성자 본문을 .cc 파일로 옮길 수 있습니다. – Nemo
@Nemo OP는 옵션이 아닙니다. "(추가 참고 : 클래스 본문 내에 생성자를 유지해야했습니다.)" –
@ Nemo 팁 주셔서 감사. 그러나 나는 그것을 수업 시간 안에 유지하도록 요청 받았다. – Minteh