본문 바로가기

Language&Framework&Etc/C++33

클래스의 기본(03-1) C++에서의 구조체 구조체의 등장배경은 무엇인가? "연관 있는 데이터를 하나로 묶으면, 프로그램의 구현 및 관리가 용이하다" "소프트웨어 = 데이터의 표현 + 데이터의 처리" "표현해야 하는 데이터"는 항상 부류를 형성하기 마련. 그리고 이렇게 부류를 형성하는데이터들은 함께 생성, 이동 및 소멸된다는 특성 그래서 구조체는 연관 있는 데이터를 묶을 수 있는 문법적 장치로 데이터의 표현에 매우 큰 도움을 준다. 예를 들어, 레이싱게임의 '자동차'를 표현한다고 가정, 아래의 유사한 정보들이 모여서 게임상의 자동차가 표현 소유주 연료량 현재속도 취득점수 취득아이템 게임을 종료하면, 위 정보는 데이터베이스(또는 파일)에 함께 저장되어야 하며 게임을 시작하면, 저장된 위의 정보는 함께 복원되어야 한다. 이들 정보를 이용해서 구조체를 .. 2020. 12. 23.
C언어 기반의 C++ 2(02-6) C++에서 C언어의 표준함수 호출하기 c를 더하고 .h를 빼라 #include → #include #include → #include #include → #include #include → #include "헤더파일의 확장자인 .h를 생략하고 앞에 c를 붙이면 C언어에 대응하는 C++의 헤더파일 이름이 된다." 예제 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main(void) { char str1[] = "Result"; char str2[30]; strcpy(str2, str1); printf("%s: %f \n", str1, sin(0.14)); printf("%s: %f \n", str2, abs(-1.25)); } C++의 헤.. 2020. 12. 23.
C언어 기반의 C++ 2(02-5) malloc & free를 대신하는 new & delete new & delete 길이정보를 인자로 받아, 문자열 저장이 가능한 배열을 생성하고, 그 배열의 주소 값을 반환하는 정의 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; char* makestradr(int len) { char* str = (char*)malloc(sizeof(char) * len); // 문자열 저장을 위한 배열을 힙 영역에 할당하고 있다. return str; } int main(void) { char* str = makestradr(20); strcpy(str, "I am so happy"); cout 2020. 12. 23.
C언어 기반의 C++ 2(02-4) 참조자(Reference)와 함수 참조자의 활용에는 함수가 큰 위치를 차지한다. 따라서 함수와 관련해서 참조자를 이야기 Call-by-value & call-by-reference C언어를 공부하면서 배운 함수의 두 가지 호출방식 Call-by-value : 값을 인자로 전달하는 함수의 호출방식 Call-by-reference : 주소 값을 인자로 전달하는 함수의 호출방식 Call-by-value int Adder(int num1, int num2) { return num1+num2; } 두 개의 정수를 인자로 요구. Call-by-value의 형태로 정의된 함수의 내부에서는, 함수외부에 선언된 변수에 접근이 불가능하다. 따라서 두 변수에 저장된 값을 서로 바꿔서 저장할 목적으로 다음과 가팅 함수를 정의하면 원하는 결과를 얻을 수 없다... 2020. 12. 22.