오랜만에 C+ 다시 개념 잡고 공부하려는데 일단 연산자 오버로딩 공부를 대강하고 넘어간지라.. 코드 연습해 가면서..
해볼려는데.. 잘 안되네요..ㅠ;; 기본 개념만 알고.. 코드로는 잘 많이 안짜봐서인지. . 에러났는데.. 이상하게 모르겠으여ㅠ..
네이버 검색해봐서 블로그에 잇는 내용 .. 드레그.. 오른쪽 클릭안되길래.. 열심히.. 쳐서 디버깅하는 순간.. 에러가..득실..
이거 궁금해서.. 좀 알려주실까 해서.. 이렇게 올려봄니다..ㅠ 프갤횽들.. 굽신굽신..ㅠ
에러 왜 있는지좀..;;
글고 C++ 괜찮은 코드 돌아다니거나 횽들 남는거 있음 저좀 주세욤..ㅠ 열공 하게유..ㅠㅠ
사진은.. 돌렸을때 에러염;;
------------------------ 아래는 코드;; -----------------------------
//http://blog.daum.net/creazier/15309302 블로그서 한거 해보기
// 연산자 오버로딩 공부~
/*
연산자 오버로딩을 하는 두가지 방법( 멤버함수, 전역함수 )
*/
#include <iostream>
using namespace std;
class CTime
{
private:
int hour;
int minute;
int second;
public:
CTime(int h,int m,int s)
{
hour = h;
minute = m;
second = s;
}
/* 멤버함수를 이용한 연산자 오버로딩*/
Ctime operator+(const CTime &P0)
{
int tempHour = 0;
int tempMin = 0;
int tempSec = 0;
if( (second + P0.second) > 60 || (second + P0.second) == 60 )
{
tempMin = (second + P0.second)/60;
tempSec = (-tempMin*60);
}
if( (minute + P0.minute) > 60 || (minute + P0.minute) == 60 )
{
tempHour = (minute + P0.minute)/60;
tempMin = tempMin + (-tempHour*60);
}
return CTime( hour + P0.hour + tempHour, minute + P0.minute + tempMin, second + P0.second + tempSec);
}
//friend CTime operator+(const CTime &Po1,const CTime &Po2);// 전역함수선언
void Print()
{
cout << hour << "시" << minute << "분" << second << "초" << endl;
}
};
/* 전역함수를 이용한 연산자 오버로딩
CTime operator+(const CTime &Po1,const CTime &po2)
{
int h,m,s;
s = Po1.second + Po2.second;
m = Po1.minute + Po2.minute;
h = Po1.hour + Po2.hour;
m += s/60;
s %= 60;
h += m/60;
m %= 60;
h %= 60;
return CTime(h,m,s);
}
*/
int main(void)
{
CTime time1(4,50,40);
CTime time2(4,50,40);
CTime time3 = time1 + time2;
time1.Print();
time2.Print();
time3.Print();
return 0;
}
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.