저는 C++을 처음 접했을뿐입니다. 저는 처음에 ... 저는 도움이 필요합니다. 누군가가 내가 잘못 생각한 부분을 설명 할 수 있다면 감사하겠습니다. :
내 모든 Time.h 코드의 첫째 : 지금>> operator overloading ... C++
#ifndef TIME_H
#define TIME_H
#include<iostream>
using namespace std;
class time {
friend istream &operator>> (istream &, time);
private:
int hour;
int minute;
int second;
public:
time(int = 0, int = 0, int = 0);
void settime(int, int, int);
void sethour(int);
void setminute(int);
void setsecond(int);
};
#endif
을 그리고, Time.cpp :
#include<iostream>
#include"Time.h"
using namespace std;
using std::cout;
using std::cin;
time::time(int h, int m, int s)
{
settime(h, m, s);
}
void time::settime(int hr, int min, int sec)
{
sethour(hr);
setminute(min);
setsecond(sec);
}
void time::sethour(int h)
{
hour = (h >= 0 && h < 24) ? h : 0;
}
void time::setminute(int m)
{
minute = (m >= 0 && m < 60) ? m : 0;
}
void time::setsecond(int s)
{
second = (s >= 0 && s < 60) ? s : 0;
}
istream &operator>> (istream &in, time m)
{
in >> m.sethour >> m.setminute >> m.setsecond;
}
그리고 마지막으로 source.cpp :
#include<iostream>
#include"D:\headers\Time.h"
using namespace std;
void main()
{
time t;
cin >> t;
system("pause");
}
하지만 컴파일 할 때 오류가 발생합니다 :
1. 오류 C3867 'time :: sethour': 비표준 구문; '&'을 사용하여 멤버에 대한 포인터를 만듭니다. Project33 D : \ headers \ Time.cpp
2. 오류 C2679 바이너리 '>>': 'overloaded-function'유형의 오른쪽 피연산자를 사용하는 연산자가 없습니다 (또는 받아 들일 수있는 변환은 없습니다.) Project33 D : \ headers \ Time.cpp 아무도 나를 도울 수 있습니까 ???
, 무엇을 그 인수는 어떻게됩니까? 논쟁을 수정할 때 어떤 일이 발생합니까? 이 변경 사항이 함수를 호출하는 코드에 반영됩니까? –