Java를 먼저 공부했었기 때문에 책에 있는 코드를 따라 써보면서 모르는 부분이나 Java와 유사한 부분은 주석으로 설명을 달아두었다. 둘 다 객체지향언어라 비슷한듯 하면서도 문법적으로 달라서 신기했다. #include #include //strcpy 사용하기 위해서using namespace std;const int NAME_LEN = 20; // 이름 길이//Func : java에서 Method 같은 것/*0. 메뉴1. 계좌개설2. 입금3. 출금4. 계좌정보 전체 출력5. 프로그램 종료*/void ShowMenu();void MakeAccount();void DepositMoney();void WithdrawMoney();void AllAccountInfo();enum {MAKE=1, DEPOSI..
C++을 제대로 공부하려면 다음의 내용을 잘 알고 있어야 한다.- 헤더파일의 의미와 정의 방법- 헤더파일에 삽입할 내용과 소스파일에 삽입할 내용을 구분하는 방법- 둘 이상의 헤더파일과 소스파일을 만들어서 하나의 실행파일로 컴파일하는 방법이와 관련해서 전혀 감이 없다면, C언어 기본서를 참조하여 이 부분을 복습하기 바라며,감이 좀 있다면, 앞으로 조금씩 그 감을 살려나가기 바란다.그럼 헤더파일, 그리고 파일분할과 관련된 감을 살리기 위해서 앞서 소개한 예제 NameSp2.cpp를 다음과 같이 총 3개의 파일로 분할해서 컴파일해보자.- 헤더파일 : main 함수를 제외한 나머지 두 함수의 선언을 삽입- 소스파일1 : main 함수를 제외한 나머지 두 함수의 정의를 삽입- 소스파일2 : main 함수만 삽입파..
다음과 같은 형태로의 함수 오버로딩은 문제가 있다. 어떠한 문제가 있는지 설명해보자.int SimpleFunc(int a = 10){ return a + 1;}int SimpleFunc(void){ return 10;} [풀이]int SimpleFunc(int a = 10) 함수와 int SimpleFunc(void) 함수는 모두 SimpleFunc()로 사용할 수 있기 때문에 SimpleFunc()를 선언했을 때, 둘 중 어떤 함수를 사용해야할지 모르게 되어 에러가 발생한다.
예제 DefaultValue3.cpp에 정의되 함수 BoxVolumne은 '매개변수의 디폴트 값 지정'형태가 아닌, '함수 오버로딩'의 형태로 재구현해보자. 물론 main 함수는 변경되지 않아야하며, 실행결과도 동일해야한다.#include using namespace std;int BoxVolume(int length, int width = 1, int height = 1);int main(void){ cout [풀이]//'함수 오버로딩'의 형태로 재구현 int BoxVolume(int length, int width, int height) { return length * width * height;}int BoxVolume(int length, int width) { return length * ..
다음 main 함수에서 필요로 하는 swap 함수를 오버로딩해서 구현해보자. // main 함수int main(void){ int num1 = 20, num2 = 30; swap(&num1, &num2); std::cout [실행의 예]30 20Z A5.555 1.111 [풀이]void swap(int* num1, int* num2){ int tmp = *num1; *num1 = *num2; *num2 = tmp;}void swap(char* ch1, char* ch2){ char tmp = *ch1; *ch1 = *ch2; *ch2= tmp;}void swap(double* dbl1, double* dbl2){ double tmp = *dbl1; *dbl1 = *dbl2; *dbl2 = tmp;}