티스토리 뷰
함수중복
•함수중복
–동일한이름의 함수가 공존
•다형성
•C 언어에서는 불가능
–함수중복이 가능한 범위
•보통 함수들 사이
•클래스의 멤버함수들 사이
•상속관계에 있는 기본클래스와 파생클래스의 멤버함수들 사이
•함수 중복 조건
–중복된함수들의 이름동일
–중복된함수들의 매개변수타입이다르거나 개수가달라야함
–리턴타입은 함수중복과 무관
*사용 형식
void function(int a, int b, int c = 10, int d= 20){ // 함수 구현할 때 매개변수에 바로 초기화 해주면 호출시 이 값으로 매개변수값이 전달된다.
.....
}
int main(){
function(1,2); // c와 d는 10과 20으로 전달된다. => a = 1, b =2 , c = 10, d = 20
return 0;
}
<예제 소스 코드>
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 |
#include<iostream>
using namespace std;
void msg(int id, string text = "Hello") {
cout << "id : " << id << " / text = " << text << endl;
}
//디폴트 매개변수는 끝쪽으로 모아서 선언한다.
void sum(int a, int b, int c = 10, int d = 20){
int s = 0;
s = a+b+c+d;
cout << "매개변수의 합은 "<< s << endl;
}
void square(int width = 1, int height = 1){
cout << "width = " << width << " / height = " << height << endl;
}
int main() {
square();//실행결과 width =1 ,height = 1
square(5);//실행결과 width =5 ,height = 1
square(3,8); //실행결과 width =3 ,height = 8
//sum();//보통매개변수는 반드시 값을 전달해야한다.
// sum(100, 50);
//msg();//컴파일 오류 : msg() id 변수는 디폴트 값을 가지지 않으므로
//msg(10);//실행 결과는 디폴트값을 text변수에 "Hello" 출력
//msg(10, "Good Morning");//실행 결과는 디폴트값을 text변수에 "Hello" 출력
return 0;
} |
cs |
<예제 소스 코드2>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
#include<iostream>
using namespace std;
void fillLine(int n = 25, char c = '*') {
for (int i = 0; i < n; i++)
cout << c;
cout << endl;
}
int main() {
fillLine();
fillLine(10, '%');
return 0;
} |
cs |
static의주요활용
- 전역변수나 전역함수를 클래스에 캡슐화
•전역변수나전역함수를가능한사용하지않도록
•전역변수나전역함수를static으로선언하여클래스멤버로선언
- 객체사이에 공유변수를 만들고자 할 때
•static 멤버를 선언하여 모든 객체들이 공유
'객체 지향 프로그래밍 > 이론 정리' 카테고리의 다른 글
[C++]함수 중복, 추상클래스 (0) | 2017.11.15 |
---|---|
[C++]함수와 참조, 복사 생성자 (0) | 2017.11.01 |
[C++]this 포인터, string 클래스 (0) | 2017.10.18 |
[C++]객체 포인터, 객체 배열,동적 메모리 할당 (0) | 2017.10.11 |
[C++]접근지정자, 인라인 함수, 구조체, 파일분리 (0) | 2017.09.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬 함수
- 명품 c++ 실습
- 파이썬 단계적 개선
- 자바 에센셜 실습문제
- 파이썬
- 백준 1874
- 파이썬 for
- 파이썬 문자열
- 파이썬 선택문
- 백준
- css 박스
- 파이썬 리스트
- 자료구조
- 파이썬 터틀
- 백준 10451
- 파이썬 클래스
- 자바스크립트 자료구조
- 파이썬 진수 변환
- 자바스크립트 그래프
- 파이썬 if문
- css 그리드
- 웹
- 백준 11501
- 자바
- 파이썬 객체
- 파이썬 while
- 버츄어박스
- 파이썬 연산자
- 파이썬 예제
- css
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함