중복 - dongseokowon.dongseo.ac.kr/~dkkang/oop2008fall/w10.pdf · 2015-09-14 · 39 { 40 unit...
TRANSCRIPT
-
연산
자연
산자
연산
자연
산자
중복
중복
중복
중복
같은연산자에서로다른매개변수를사용한경우를말한다.
-
이장
에서
다룰
내용
연산
자중
복1
이항
연산
자중
복2
관계
연산
자중
복3
단항
연산
자중
복4
frie
nd 함
수를
이용
한연
산자
중복
5
-
01_연
산자
중복
�연
산자
의중
복
�같
은연
산자
에서
로다
른매
개변
수를
사용
하여
선택
적으
로연
산을
수행
할수
있게
하는
것
�함
수중
복의
부분
집합
�포
인터
의기
본형
태와
사용
예
반환
형클
래스
명::
opera
tor#
(매개
변수
){ 문
장... re
turn
반환
형;
} [기본
형태
]
IntU
nit
Unit
::opera
tor+
(Unit
rig
ht)
{ Unit
tem
p;
if (
rig
ht.hp >
hp )
tem
p.h
p =
rig
ht.hp;
els
ete
mp.h
p =
hp;
retu
rn t
em
p;
} [사용
예]
-
01_연
산자
중복
�연
산자
의중
복의
제약
�연
산자
의우
선순
위는
변경
될수
없다
.
�연
산자
가취
하는
피연
산자
의개
수는
바뀔
수없
으며
디폴
트인
자역
시사
용할
수없
다.
�.,
.*,
::,
?:과
같은
연산
자는
중복
되지
않는
다.
�=,
[],
(),
->와
같은
연산
자들
은클
래스
의멤
버�
=,
[],
(),
->와
같은
연산
자들
은클
래스
의멤
버함
수(정
적멤
버함
수가
아닌
)로만
정의
할수
있다
.
-
02_이
항연
산자
중복
�이
항연
산자
의중
복
�중
복함
수가
한개
의매
개변
수만
가짐
�연
산자
의우
변에
있는
객체
를받
음
�연
산자
의좌
변에
있는
객체
는th
is 포
인터
로전
달됨
-
[기본
예제
10-2]
이항
연산
자중
복-
1
01 #
inclu
de<io
stream
>02 u
sin
g n
am
espace s
td;
03 c
lass U
nit
04 {
05
06 p
riva
te:
07 int hp;
08
09 p
ublic
:10 U
nit()
11 {
12 h
p=0;
13 }
13 }
14
15 U
nit(int i)
16 {
17 h
p=i;
18 }
19
20 int G
etH
P()
21 {
22 retu
rn h
p;
23 }
24
25 U
nit o
pera
tor+
(Unit rig
ht)
;26
27 }
;
연산
자연
산자
연산
자연
산자
중복
을중
복을
중복
을중
복을
위해
위해
위해
위해
연산
자연
산자
연산
자연
산자
함수
를함
수를
함수
를함
수를
정의
한다
정의
한다
정의
한다
정의
한다
. ...
-
[기본
예제
10-2]
이항
연산
자중
복-
2
28
29 U
nit U
nit::opera
tor+
(Unit rig
ht)
30 {
31 U
nit tem
p;
32
33 if
( right.hp >
hp )
34 tem
p.h
p =
rig
ht.hp;
35 e
lse
36 tem
p.h
p =
hp;
37
38 retu
rn tem
p;
39 }
40
연산
자연
산자
연산
자연
산자
함수
를함
수를
함수
를함
수를
구현
한다
구현
한다
구현
한다
구현
한다
. ...
this
th
is
this
th
is 객
체와
객체
와객
체와
객체
와매
개변
수로
매개
변수
로매
개변
수로
매개
변수
로넘
어오
는넘
어오
는넘
어오
는넘
어오
는객
체객
체객
체객
체중 중중중
큰 큰큰큰값
을값
을값
을값
을th
is
this
th
is
this
객체
의객
체의
객체
의객
체의
hp
hp
hp
hp로 로로로
저장
한다
저장
한다
저장
한다
저장
한다
.
40
41 int m
ain
(int arg
c,
char*
arg
v[ ]
)42 {
43 U
nit U
nit1(1
0),
Unit2(5
), U
nit3;
44
45 U
nit3 =
Unit1 +
Unit2;
46
47 c
out << "
Unit1 h
p =
" <
< U
nit1.G
etH
P()
<< "
\n";
48 c
out << "
Unit2 h
p =
" <
< U
nit2.G
etH
P()
<< "
\n";
49 c
out << "
Unit3 h
p =
" <
< U
nit3.G
etH
P()
<< "
\n";
50
51 retu
rn 0
;52 }
우리
가우
리가
우리
가우
리가
알고
알고
알고
알고
있는
있는
있는
있는
+ +++의 의의의
의미
와의
미와
의미
와의
미와
다른
다른
다른
다른
의미
의의
미의
의미
의의
미의
연산
자다
연산
자다
연산
자다
연산
자다
. ...
-
[기본
예제
10-3]
이항
연산
자를
적용
한예
제-
1
01 #
inclu
de<io
stream
>02 #
inclu
de<cstrin
g>
03 u
sin
g n
am
espace s
td;
04 c
lass U
nit
05 {
06
07 p
riva
te:
08 inthp;
09 intm
p;
10 intunitSiz
e;
10 intunitSiz
e;
11 c
har*
nam
e;
12
13 p
ublic
:14 U
nit()
15 {
16 h
p =
0;
17 m
p =
0;
18 u
nitSiz
e= 0
;19 n
am
e =
NU
LL;
20 }
21
Unit
Unit
Unit
Unit 생
성자
에서
생성
자에
서생
성자
에서
생성
자에
서필
요한
필요
한필
요한
필요
한초
기화
초기
화초
기화
초기
화작
업을
작업
을작
업을
작업
을한
다한
다한
다한
다. ...
-
[기본
예제
10-3]
이항
연산
자를
적용
한예
제-
2
22 U
nit(int arg
Hp,
int arg
Mp,
int arg
Siz
e,
const char*
arg
Nam
e)
23 :
hp(a
rgH
p),
mp(a
rgM
p),
unitSiz
e(a
rgSiz
e)
24 {
25
nam
e =
new
char[
strle
n(a
rgN
am
e)
+ 1
];26
strcpy(
nam
e,
arg
Nam
e);
27 }
;28
29 ~
Unit()
30 {
31
if (
!nam
e)
생성
자에
생성
자에
생성
자에
생성
자에
할당
한할
당한
할당
한할
당한
메모
리는
메모
리는
메모
리는
메모
리는
반드
시반
드시
반드
시반
드시
해제
해야
해제
해야
해제
해야
해제
해야
한다
한다
한다
한다
. ...
31
if (
!nam
e)
32
{33
dele
te[
] nam
e;
34
nam
e =
NU
LL;
35
}36 }
;37
38 p
ublic
:39
int G
etH
P()
40
{41
retu
rn h
p;
42
}
-
[기본
예제
10-3]
이항
연산
자를
적용
한예
제-
3
43
44 int G
etM
P()
45 {
46 r
etu
rn m
p;
47 }
48
49 int G
etS
ize()
50 {
51 r
etu
rn u
nitSiz
e;
51 r
etu
rn u
nitSiz
e;
52 }
53
54 c
har*
GetN
am
e()
55 {
56 r
etu
rn n
am
e;
57 }
58
59 int opera
tor+
(Unit rig
ht)
;60 }
;연
산자
연산
자연
산자
연산
자중
복을
중복
을중
복을
중복
을위
한위
한위
한위
한함
수다
함수
다함
수다
함수
다. ...
-
[기본
예제
10-3]
이항
연산
자를
적용
한예
제-
4
61
62 int U
nit::
opera
tor+
(Unit rig
ht)
63 {
64 retu
rn G
etS
ize()
+ rig
ht.G
etS
ize()
;65 }
;66
67 c
lass H
ighTem
pla
r : public
Unit
68 {
69
70 p
ublic
:71 H
ighTem
pla
r()
연산
자를
연산
자를
연산
자를
연산
자를
중복
으로
중복
으로
중복
으로
중복
으로
구현
한다
구현
한다
구현
한다
구현
한다
. ...
72 : U
nit(4
5, 125, 2, "H
ighTem
pla
r")
73 {
};74 }
;75
76 int m
ain
(int arg
c, char*
arg
v[ ]
)77 {
78 H
ighTem
pla
r hTem
pla
r1, hTem
pla
r2;
79
80 c
out << "
Tota
l U
nit s
ize :
" <
< h
Tem
pla
r1 +
hTem
pla
r2 <
< "
\n";
81
82 retu
rn 0
;83 }
객체
끼리
객체
끼리
객체
끼리
객체
끼리
직접
직접
직접
직접
더하
는더
하는
더하
는더
하는
연산
을연
산을
연산
을연
산을
하는
하는
하는
하는
+
+
+
+ 연
산자
다연
산자
다연
산자
다연
산자
다. ...
-
03_관
계연
산자
중복
/ 04_단
항연
산자
중복
�관
계연
산자
의중
복
�관
계연
산자
와논
리연
산자
도중
복이
가능
�참
/거짓
을나
타내
는변
수를
반환
�연
산자
들이
다른
자료
형과
함께
큰관
계식
에포
함될
수있
기때
문
�단
항연
산자
중복
�하
나의
피연
산자
만다
룸
�중
복함
수의
매개
변수
가없
음
-
[기본
예제
10-4]
관계
연산
자의
중복
-1
01 #
inclu
de<io
stream
>02 u
sin
g n
am
espace s
td;
03 c
lass U
nit
04 {
05
06 p
riva
te:
07
int hp;
08
09 p
ublic
:10
Unit()
기본
기본
기본
기본
클래
스클
래스
클래
스클
래스
Unit
Unit
Unit
Unit을 을을을
정의
정의
정의
정의
한다
한다
한다
한다
. ...
10
Unit()
11
{12
hp=0;
13
}14
15 U
nit(int i)
16
{17
hp=i;
18
}19
20 int G
etH
P()
21 {
-
[기본
예제
10-4]
관계
연산
자의
중복
-2
22 r
etu
rn h
p;
23 }
24
25 int opera
tor=
=(U
nit r
ight)
;26
27 }
;28
29 int U
nit::opera
tor=
=(U
nit r
ight)
30 {
31
관계
관계
관계
관계
연산
자연
산자
연산
자연
산자
중복
을중
복을
중복
을중
복을
위한
위한
위한
위한
연산
자연
산자
연산
자연
산자
함수
다함
수다
함수
다함
수다
. ...
31
32 if
( hp =
= r
ight.G
etH
P()
)33 r
etu
rn 1
;34 e
lse
35 r
etu
rn 0
;36 }
37
38 int m
ain
(int arg
c,
char*
arg
v[ ]
)39 {
40 U
nit U
nit1(1
0),
Unit2(5
), U
nit3(5
);41
매개
변수
매개
변수
매개
변수
매개
변수
객체
의객
체의
객체
의객
체의
hp
hp
hp
hp와 와와와
현 현현현객
체의
객체
의객
체의
객체
의hp
hp
hp
hp가 가가가
같으
면같
으면
같으
면같
으면
1(t
rue)
1(t
rue)
1(t
rue)
1(t
rue)을 을을을
, , , , 다
르면
다르
면다
르면
다르
면0(f
als
e)
0(f
als
e)
0(f
als
e)
0(f
als
e)을 을을을
리턴
한다
리턴
한다
리턴
한다
리턴
한다
. ...
-
[기본
예제
10-4]
관계
연산
자의
중복
-3
42 if
( U
nit1 =
= U
nit2 )
43
cout << "
Unit1 =
= U
nit2\
n";
44 e
lse
45
cout << "
Unit1 != U
nit2\
n";
46
47 if
( U
nit2 =
= U
nit3 )
48
cout << "
Unit2 =
= U
nit3\
n";
객체
간의
객체
간의
객체
간의
객체
간의
크기
크기
크기
크기
비교
가비
교가
비교
가비
교가
가능
하다
가능
하다
가능
하다
가능
하다
. ...
48
cout << "
Unit2 =
= U
nit3\
n";
49 e
lse
50
cout << "
Unit2 != U
nit3\
n";
51
52 retu
rn 0
;
53 }
-
[기본
예제
10-5]
단항
연산
자의
중복
-1
01 #
inclu
de<io
stream
>02 u
sin
g n
am
espace s
td;
03 c
lass U
nit
04 {
05
06 p
riva
te:
07
int hp;
08
09 p
ublic
:10
Unit()
11
{
기본
기본
기본
기본
클래
스클
래스
클래
스클
래스
Unit
Unit
Unit
Unit을 을을을
정의
정의
정의
정의
한다
한다
한다
한다
. ...
12
hp=0;
13
}14
15
Unit(int i)
16
{17
hp=i;
18
}19
20
int G
etH
P()
21
{22
retu
rn h
p;
23
}
-
[기본
예제
10-5]
단항
연산
자의
중복
-1
24
25 U
nit&
opera
tor+
+()
;26
27 }
;28
29 U
nit&
Unit::opera
tor+
+()
30 {
31
32 h
p++;
33
34 retu
rn (
*this
);35 }
36
단항
단항
단항
단항
연산
자연
산자
연산
자연
산자
연산
의연
산의
연산
의연
산의
중복
중복
중복
중복
함수
이므
로함
수이
므로
함수
이므
로함
수이
므로
매개
변수
가매
개변
수가
매개
변수
가매
개변
수가
없다
없다
없다
없다
. ...
this
th
is
this
th
is 객
체를
객체
를객
체를
객체
를대
상으
로대
상으
로대
상으
로대
상으
로하
는하
는하
는하
는것
이기
것이
기것
이기
것이
기때
문에
때문
에때
문에
때문
에결
과로
결과
로결
과로
결과
로th
is
this
th
is
this
객체
를객
체를
객체
를객
체를
반환
한다
반환
한다
반환
한다
반환
한다
. ...
36
37 int m
ain
(int arg
c,
char*
arg
v[ ]
)38 {
39 U
nit U
nit1(1
);40
41 c
out << "
Unit1 h
p =
" <
< U
nit1.G
etH
P()
<< "
\n";
42
43 +
+U
nit1;
44
45 c
out << "
++U
nit1 h
p =
" <
< U
nit1.G
etH
P()
<< "
\n";
46
47 retu
rn 0
;48 }
-
05_f
riend 함
수를
이용
한연
산자
중복
�그
외의
연산
자의
중복
�멤
버함
수이
외의
함수
로도
중복
구현
가능
�fr
iend 함
수를
이용
�두
개의
피연
산자
를모
두매
개변
수로
전달
�단
항일
경우
하나
의매
개변
수전
달
��치
환연
산자
의중
복은
불가
-
[기본
예제
10-6]
frie
nd 함
수를
이용
한연
산자
의중
복-
1
01 #
inclu
de<io
stream
>02 u
sin
g n
am
espace s
td;
03 c
lass U
nit
04 {
05
06 p
riva
te:
07
int hp;
08
09 p
ublic
:10
Unit()
11
{
기본
기본
기본
기본
클래
스클
래스
클래
스클
래스
Unit
Unit
Unit
Unit을 을을을
정의
정의
정의
정의
한다
한다
한다
한다
. ...
12
hp=0;
13
}14
15
Unit(int i)
16
{17
hp=i;
18
}19
20
int G
etH
P()
21
{22
retu
rn h
p;
23
}
-
[기본
예제
10-6]
frie
nd 함
수를
이용
한연
산자
의중
복-
2
25 f
riend U
nit o
pera
tor+
(Unit left, U
nit r
ight)
;26
27
28 }
;29
30 U
nit o
pera
tor+
(Unit left, U
nit r
ight)
31 {
32 U
nit tem
p;
33 tem
p.h
p =
left.h
p +
rig
ht.hp;
34
35 c
out << "
left h
p =
" <
< left.h
p <
< "
\n";
36 c
out << "
right hp =
" <
< rig
ht.hp <
< "
\n";
37 c
out << "
result h
p =
" <
< tem
p.h
p <
< "
\n";
frie
nd
frie
nd
frie
nd
frie
nd 함
수를
함수
를함
수를
함수
를선
언한
다선
언한
다선
언한
다선
언한
다. . . . 즉 즉즉즉
, , , , 다
른다
른다
른다
른객
체에
서객
체에
서객
체에
서객
체에
서이 이이이
함수
로함
수로
함수
로함
수로
접근
할접
근할
접근
할접
근할
수 수수수있
다는
있다
는있
다는
있다
는의
미다
의미
다의
미다
의미
다. ...
따라
서따
라서
따라
서따
라서
두 두두두개
의개
의개
의개
의매
개변
수를
매개
변수
를매
개변
수를
매개
변수
를받
아서
받아
서받
아서
받아
서연
산을
연산
을연
산을
연산
을수
행한
다수
행한
다수
행한
다수
행한
다. ...
37 c
out << "
result h
p =
" <
< tem
p.h
p <
< "
\n";
38
39 retu
rn tem
p;
40 }
41
42 int m
ain
(int arg
c,
char*
arg
v[ ]
)43 {
44 U
nit U
nit1(1
), U
nit2(5
), U
nit3;
45
46 U
nit3 =
Unit1 +
Unit2;
47
48 retu
rn 0
;49 }
tem
pte
mp
tem
pte
mp가 가가가
로컬
로컬
로컬
로컬
변수
므로
변수
므로
변수
므로
변수
므로
복사
된복
사된
복사
된복
사된
객체
를객
체를
객체
를객
체를
리턴
한다
리턴
한다
리턴
한다
리턴
한다
. ...
-
[기본
예제
10-7]
치환
연산
자의
중복
-1
01 #
inclu
de <
iostream
>02 #
inclu
de <
cstrin
g>
03 u
sin
g n
am
espace s
td;
04 #
define M
AX_L
EN
255
05
06 c
lass U
nit
07 {
08
09 p
riva
te:
10
char *p
szN
am
e;
11
12 p
ublic
:13
Unit()
13
Unit()
14
{15
pszN
am
e= n
ew
char[
MAX_L
EN
];16
cout<< "
Norm
al C
onstructo
r\n";
17
}18
19
~U
nit()
20
{21
if (
!pszN
am
e)
22
{23
dele
te [
] p
szN
am
e;
24
pszN
am
e= N
ULL;
25
}26
}
이름
을이
름을
이름
을이
름을
저장
할저
장할
저장
할저
장할
255
255
255
255자
의자
의자
의자
의문
자열
문자
열문
자열
문자
열변
수를
변수
를변
수를
변수
를할
당한
다할
당한
다할
당한
다할
당한
다. ...
생성
자에
서생
성자
에서
생성
자에
서생
성자
에서
할당
한할
당한
할당
한할
당한
변수
가변
수가
변수
가변
수가
여러
여러
여러
여러
번 번번번해
제해
제해
제해
제되
지되
지되
지되
지않
도록
않도
록않
도록
않도
록한
다한
다한
다한
다. ...
-
[기본
예제
10-7]
치환
연산
자의
중복
-2
27
28 v
oid
Print(
)29 {
30 c
out << p
szN
am
e <
< "
\n";
31 }
32
33 v
oid
Set(
char*
pszI
n)
34 {
35 s
trcpy(
pszN
am
e,
pszI
n )
;36 }
이름
을이
름을
이름
을이
름을
저장
한다
저장
한다
저장
한다
저장
한다
. ...
36 }
37
38 U
nit &
opera
tor=
(Unit &
right)
;39
40 }
;41
42 U
nit &
Unit::opera
tor=
(Unit &
right)
43 {
44 c
out << "
opera
tor
calle
d"
<< '\
n';
45 s
trcpy(
pszN
am
e,
right.pszN
am
e )
;46 r
etu
rn *
this
;47 }
치환
치환
치환
치환
연산
자를
연산
자를
연산
자를
연산
자를
위한
위한
위한
위한
연산
자연
산자
연산
자연
산자
함수
다함
수다
함수
다함
수다
. ...
호출
호출
호출
호출
여부
를여
부를
여부
를여
부를
확인
한다
확인
한다
확인
한다
확인
한다
. ...
이름
을이
름을
이름
을이
름을
저장
한다
저장
한다
저장
한다
저장
한다
. ...
-
[기본
예제
10-7]
치환
연산
자의
중복
-3
48
49 int m
ain
(int arg
c, char*
arg
v[ ]
)
50 {
51 U
nit Z
erg
, Spaw
n;
52
53 Z
erg
.Set(
"zerg
ling")
;
54 Z
erg
.Print(
);54 Z
erg
.Print(
);
55
56 S
paw
n=Zerg
;
57 S
paw
n.P
rint(
);
58
59 retu
rn 0
;
60 }
연산
자연
산자
연산
자연
산자
중복
중복
중복
중복
함수
가함
수가
함수
가함
수가
호출
된다
호출
된다
호출
된다
호출
된다
. ...
-
예제
모음
_1스
트림
출력
연산
자‘<
<‘의
중복
사용
요구
사항
요구
사항
요구
사항
요구
사항
①학
생번
호를
가지
고있
는Stu
dent 클
래스
를설
계한
다.
②10번
을가
지는
학생
객체
를하
나생
성한
다.
③추
가함
수의
구현
없이
연산
자중
복을
이용
해아
래와
같이
번호
를출
력한
다.
실행
결과
실행
결과
실행
결과
실행
결과
-
예제
모음
_1소
스-
1
01 #include<iostream>
02 using namespace std;
03 class Student
04 {
05 private:
06 int m_StudentID;
07
08 public:
09 Student(int agID)
10 :m_StudentID(agID)
11 {};
12
13 friend ostream& operator<<(ostream & os, Student & stu);
cout
cout
cout
cout의 의의의
<<
<<
<<
<< 연
산자
를연
산자
를연
산자
를연
산자
를중
복한
다중
복한
다중
복한
다중
복한
다. ...
13 friend ostream& operator<<(ostream & os, Student & stu);
14 };
15
16 ostream& operator<<(ostream & os, Student & stu)
17 {
18 os << "StudentID = " << stu.m
_StudentID;
19 return os;
20 }
21
22 void main()
23 {
24 Student stu(10);
25
26 cout << stu << '\n';
27 }
다른
다른
다른
다른
출력
출력
출력
출력
함수
를함
수를
함수
를함
수를
사용
하지
사용
하지
사용
하지
사용
하지
않는
다않
는다
않는
다않
는다
. ...
-
예제
모음
_2
교집
합,
합집
합을
구해
주는
새로
운연
산자
요구
사항
요구
사항
요구
사항
요구
사항
①A
, B
는집
합(s
et)
이다
.②
교집
합을
구하
는연
산자
‘^’를
정의
하라
.③
합집
합을
구하
는연
산자
‘*’를
정의
하라
.
실행
결과
실행
결과
실행
결과
실행
결과
-
예제
모음
_2소
스-
1
001 #
inclu
de<io
stream
>002 u
sin
g n
am
espace s
td;
003 c
lass M
ySet
004 {
005
006 p
riva
te:
007 int*
m_S
et;
008 int m
_Siz
e;
009 int m
_MaxS
ize;
010
011 p
ublic
:
행 행행행순
서대
로순
서대
로순
서대
로순
서대
로집
합의
집합
의집
합의
집합
의내
용을
내용
을내
용을
내용
을저
장할
저장
할저
장할
저장
할변
수변
수변
수변
수, , , , 현
재현
재현
재현
재저
장되
어저
장되
어저
장되
어저
장되
어있
는있
는있
는있
는숫
자의
숫자
의숫
자의
숫자
의개
수개
수개
수개
수, , , ,
현재
현재
현재
현재
집합
집합
집합
집합
저장
소의
저장
소의
저장
소의
저장
소의
최대
최대
최대
최대
크기
다크
기다
크기
다크
기다
. ...
012
013 M
ySet(
)014 {
015 m
_Siz
e =
0;
016 m
_MaxS
ize =
100;
017 m
_Set = n
ew
int[
m_M
axS
ize];
018 }
;019
020 M
ySet(
int agSiz
e)
021 {
022 m
_Siz
e =
0;
023 m
_MaxS
ize =
agSiz
e;
024 m
_Set = n
ew
int[
m_M
axS
ize];
기본
기본
기본
기본
생성
자다
생성
자다
생성
자다
생성
자다
. ...
원하
는원
하는
원하
는원
하는
크기
의크
기의
크기
의크
기의
집합
을집
합을
집합
을집
합을
만든
다만
든다
만든
다만
든다
. ...
-
예제
모음
_2소
스-
2
025 }
;026
027 M
ySet(
int*
agSet, int agSiz
e)
028 {
029 int i = 0
;030
031 m
_Siz
e =
0;
032 m
_MaxS
ize =
100;
033 m
_Set = n
ew
int[
m_M
axS
ize];
034
035 f
or(
i = 0
; i < a
gSiz
e; i+
+)
036 m
_Set[
i] =
agSet[
i];
037
생성
할생
성할
생성
할생
성할
때 때때때초
기화
하기
초기
화하
기초
기화
하기
초기
화하
기위
한위
한위
한위
한생
성자
다생
성자
다생
성자
다생
성자
다. ...
037
038 m
_Siz
e =
agSiz
e;
039 }
;040
041 ~
MyS
et(
)042 {
043 if
(!m
_Set)
044 {
045 d
ele
te[
] m
_Set;
046 m
_Set = N
ULL;
047 }
048 }
049
소멸
자소
멸자
소멸
자소
멸자
-
예제
모음
_2소
스-
3
050 p
ublic
:
051 int G
etS
ize()
052 {
053 r
etu
rn m
_Siz
e;
054 }
055
056 int G
etIte
m(int
agIn
dex)
057 {
원하
는원
하는
원하
는원
하는
위치
의위
치의
위치
의위
치의
원소
를원
소를
원소
를원
소를
읽어
온다
읽어
온다
읽어
온다
읽어
온다
. ...
057 {
058 r
etu
rn m
_Set[
agIn
dex]
;
059 }
060
061 v
oid
AddItem
(int agValu
e)
062 {
063 if
(m_S
ize <
m_M
axS
ize)
064 m
_Set[
m_S
ize++]
= a
gValu
e;
065 }
066
현재
현재
현재
현재
저장
되어
저장
되어
저장
되어
저장
되어
있는
있는
있는
있는
숫자
의숫
자의
숫자
의숫
자의
가장
가장
가장
가장
뒤에
뒤에
뒤에
뒤에
새로
운새
로운
새로
운새
로운
숫자
를숫
자를
숫자
를숫
자를
입력
입력
입력
입력
-
예제
모음
_2소
스-
4
067 v
oid
Print(
)
068 {
069 c
out << "
{ ";
070 f
or(
int
i = 0
; i < m
_Siz
e -
1;
i++)
071 {
072 c
out << m
_Set[
i] <
< "
, ";
073 }
074 c
out << m
_Set[
i] <
< "
}\
n";
075 }
현재
현재
현재
현재
저장
되어
저장
되어
저장
되어
저장
되어
있는
있는
있는
있는
집합
을집
합을
집합
을집
합을
보여
준다
보여
준다
보여
준다
보여
준다
. ...
075 }
076
077 M
ySet opera
tor^
(MyS
et
right)
;
078 M
ySet opera
tor*
(MyS
et
right)
;
079
080 }
;
081
082 M
ySet M
ySet::o
pera
tor^
(MyS
et
right)
083 {
084 M
ySet tm
pSet;
085
교집
합과
교집
합과
교집
합과
교집
합과
합집
합합
집합
합집
합합
집합
연산
을연
산을
연산
을연
산을
위한
위한
위한
위한
중복
중복
중복
중복
함수
다함
수다
함수
다함
수다
. ...
-
예제
모음
_2소
스-
5
086 for(
int i = 0
; i < G
etS
ize()
; i+
+)
087 {
088 for(
int j = 0
; j < rig
ht.G
etS
ize()
; j+
+)
089 if
(GetIte
m(i)
== rig
ht.G
etIte
m(j))
090 {
091 tm
pSet.AddItem
(GetIte
m(i))
;092 b
reak;
093 }
094 }
095
096 retu
rn tm
pSet;
두 두두두집
합의
집합
의집
합의
집합
의교
집합
을교
집합
을교
집합
을교
집합
을구
한다
구한
다구
한다
구한
다. ...
097 }
098
099 M
ySet M
ySet::o
pera
tor*
(MyS
et right)
100 {
101 int flag =
0;
102 M
ySet tm
pSet;
103
104 for(
int i = 0
; i < G
etS
ize()
; i+
+)
105 tm
pSet.AddItem
(GetIte
m(i))
;106
107 for(
int j = 0
; j < rig
ht.G
etS
ize()
; j+
+)
108 {
-
예제
모음
_2소
스-
6
109 fla
g =
0;
110 for(
int i = 0
; i < tm
pSet.G
etS
ize()
; i+
+)
111 if
(tm
pSet.G
etIte
m(i)
== rig
ht.G
etIte
m(j))
112 {
113 fla
g =
1;
114 b
reak;
115 }
116
117 if
(fla
g =
= 0
) tm
pSet.AddItem
(rig
ht.G
etIte
m(j))
;118 }
119
두 두두두집
합의
집합
의집
합의
집합
의합
집합
을합
집합
을합
집합
을합
집합
을구
한다
구한
다구
한다
구한
다. ...
120 retu
rn tm
pSet;
121 }
122
123 v
oid
main
()124 {
125 int s1[
] = {
1, 3, 5, 7 , 9
, 1
1};
126 int s2[
] = {
11, 13, 7 ,
9 , 2
0};
127
128 M
ySet set1
(s1,
6);
129 M
ySet set2
(s2,
5);
130
-
예제
모음
_2소
스-
7
131 c
out << "
SET1 =
{ 1
, 3, 5, 7 , 9
, 1
1}\
n";
132 c
out << "
SET2 =
{ 1
1, 13, 7 , 9
, 2
0}\
n";
133
134 M
ySet In
ter;
135
136 Inte
r = s
et1
^set2
;
137
138 c
out << "
SET1 ^
SET2 =
";
139 Inte
r.Print(
);
140
두 두두두집
합의
집합
의집
합의
집합
의교
집합
을교
집합
을교
집합
을교
집합
을구
한다
구한
다구
한다
구한
다. ...
141 M
ySet U
ni;
142
143 U
ni = s
et1
*set2
;
144
145 c
out << "
SET1 *
SET2 =
";
146 U
ni.Print(
);
147 }
두 두두두집
합의
집합
의집
합의
집합
의합
집합
을합
집합
을합
집합
을합
집합
을구
한다
구한
다구
한다
구한
다. ...
-
연산
자연
산자
중복
중복
연산
자중
복이
란, 같
은연
산자
에서
로다
른매
개변
수를
사용
하여
, 선
택적
으로
연산
을수
행할
수있
도록
하는
것이
다. 연
산자
중복
은함
수중
복의
부분
집합
에불
과하
다. 그
리고
항상
해당
클래
스와
관련
되어
중복
되며
, 중
복되
는경
우에
는본
래연
산자
의의
미가
사라
지게
된다
. 아
울러
모든
연산
자가
중복
되는
것이
아니
므로
, 중
복되
는연
산자
에한
하여
사용
해야
한다
.
요약 중
복의
중복
의제
약제
약연
산자
의우
선순
위는
변경
될수
없다
.연
산자
가취
하는
피연
산자
의개
수는
바뀔
수없
으며
디폴
트인
자역
시사
용할
수없
다.
., .*
, ::
, ?:과
같은
연산
자는
중복
되지
않는
다.
=, []
, ()
, ->와
같은
연산
자들
은클
래스
의멤
버함
수로
만정
의할
수있
다.
-
www.themegallery.com
IT C
ookB
ook
for Begin
ner, C
++
IT C
ookB
ook
for Begin
ner, C
++
IT C
ookB
ook
for Begin
ner, C
++
IT C
ookB
ook
for Begin
ner, C
++ 기
초기
초기
초기
초10 101010
장 장장장끝 끝끝끝