반응형
안녕하세요. 훈츠입니다. 금일은 함수 오버로딩에 관해 포스팅 합니다.
함수 오버로딩
함수 오버로딩은, 같은 기능을 하지만 다른 매개변수를 처리해야할때 사용하시면 좋습니다.
-
클래스 안에서 함수명을 중복하여 사용 가능합니다.
-
함수의 매개변수로 같은 함수를 구분 합니다.
-
매개변수만 오버로딩에 관계되며 리턴형은 상관 없습니다.
형식
- 리턴형 함수명 (매개 변수들…)
오버로딩시 주의 사항
- 매개 변수의 모호성에 유의 하세요.
오버로딩 예시
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
class A
{
private:
char m_cVar;
int m_nVar;
float m_fVar;
public:
void Set(char cVar) { m_cVar = cVar; }
void Set(int nVar) { m_nVar = nVar; }
void Set(float fVar) { m_fVar = fVar; }
char GetChar() { return m_cVar; }
int GetInt() { return m_nVar; }
float GetFloat() { return m_fVar; }
};
int main()
{
A test;
test.Set('s');
test.Set(1);
cout << test.GetChar() << endl;
cout << test.GetFloat() << endl;
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
클래스 객체의 복사
-
클래스도 사용자 정의 타입이므로 클래스 객체도 복사 가능
-
멤버와 멤버간의 값 복사
클래스 객체 복사시 주의 사항
-
클래스 멤버중 포인터가 있는 경우 복사 될때 이전 메모리 주소가 삭제 됩니다.
-
클래스 객체에 포인터가 있고, 객체 복사를 하면 에러가 발생하므로 없을때 하는게 좋습니다.
클래스 객체의 복사 형식
-
Class A test1, test2;
-
test1 = test2;
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
class A
{
private:
int m_nVar;
int m_nArray[3];
public:
A(int nVar) : m_nVar(nVar) {
m_nArray[0] = m_nArray[1] = m_nArray[2] = m_nVar;
}
void Print(string str) {
cout << str << endl;
}
void Print() {
cout << "m_nVar : " << m_nVar << endl;
cout << "m_nArray :";
for (int i = 0; i < 2; i++) {
cout << m_nArray[i] << '\t';
}
cout << endl << endl;;
}
};
int main()
{
A test1(5);
A test2(10);
test1.Print("test1");
test2.Print("test2");
test1 = test2;
test1.Print("test1");
test2.Print("test2");
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
test1 에 test2 의 값이 복사가 이루어진것을 확인 할수있습니다.
'컴퓨터 언어 > C++' 카테고리의 다른 글
[C++] C++ 18일차 오버로딩 4 (복사 생성자) (0) | 2020.04.22 |
---|---|
[C++] C++ 17일차 오버로딩 3 (클래스 객체 복사시 주의사항) (0) | 2020.04.21 |
[C++] C++ 15일차 연산자 오버로딩 (0) | 2020.04.17 |
[C++] C++ 14일차 가상함수와 추상클래스 (0) | 2020.04.16 |
[C++] C++ 13일차 가상함수와 다형성 (0) | 2020.04.15 |