티스토리 뷰
나는 분기문을 좀 싫어한다 -.-;;
뭔가 소스가 길어지는 느낌이라서..
예를 들어 단순히 form열기 같은 것을 하는데 switch문으로 길게 늘리는게 뭔가 안깔끔해 보인다.
switch(nIndex)
case: 0
Form1열기
case: 1
Form2열기
case: 2
form3열기
이걸 간결히 해주기 위해 아래처럼 쓸 수 있다.
Form arFrom[3];
arForm[0] = Form1;
arForm[1] = Form2;
arForm[2] = Form3;
arForm[nIndex].폼열기
이걸 다른 곳에도 응용해 보면, 입력한 숫자에 따라서 함수를 오픈해 줄 때, 분기문을 사용하는 방법도 있겠지만 아래와 같이 해줄 수 도 있다.
#include <iostream> void func0() { std::cout << "func0" << std::endl; } void func1() { std::cout << "func1" << std::endl; } void func2() { std::cout << "func2" << std::endl; } int main() { int no; std::cout << "func no : " << std::endl; std::cin >> no; void (*Func[3])(void); Func[0] = func0; Func[1] = func1; Func[2] = func2; Func[no](); return 0; }
물론 펑션포인터를 사용하기 때문에 호출하는 펑션의 파라미터나 타입이 같아야 겠지만..(타입 같은 경우야 parent 를 사용하면 되지만 인자 갯수 같은 경우는 으으음..)
단순히 void 타입에 파라미터 없는 펑션을 연결해 줄 때 저게 뭔가 간결한 느낌이다아아아.. 나만 그런가 -.-;;
'Language > C C++' 카테고리의 다른 글
Visual Studio Code에서 C/C++ 컴파일 하기 (0) | 2018.03.04 |
---|---|
[C++] 2차원 배열의 포인터. 배열은 포인터 상수다. (5) | 2011.03.24 |
[C++] Double Pointer에 관하여. 동적 배열에 관하여. (1) | 2011.03.17 |
[C++] class를 주고 받을땐 레퍼런스를 사용하자. (0) | 2011.01.28 |
[C++] RTTI와 vtable 그리고 RTCI (0) | 2010.11.25 |
[C++] dynamic_cast, const_cast, reinterpret_cast, static_cast (2) | 2010.11.24 |
[C++] 멤버 변수에서 생성자를 가진 변수 만들기 (0) | 2010.10.06 |
[C++] Algorithm 헤더를 이용한 정렬 (0) | 2010.09.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Quiz
- driver
- kering
- 안드로이드
- linux
- db
- gcc
- 프로그래밍
- Troubleshooting
- 음악
- MFC
- 리눅스
- database
- NDK
- winapi
- Cloud
- Visual C++
- 드라이버
- jni
- source
- API
- android
- C++
- C
- algorithm
- AWS
- Python
- it
- java
- jni강좌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함