[C++](41)
-
14. [C++] 클래스(Class)와 객체(Object)
클래스와 구조체의 유일한 차이점 키워드 struct를 대신해 class를 사용하면, 구조체가 아닌 클래스가 된다. class Car { char gamerID[CAR_CONST::ID_LEN]; int fuelGauge; int curSpeed; void ShowCarState() { . . . . } void Accel() { . . . . } void Break() { . . . . } 키워드 struct가 아닌 class를 사용한 것이 코드상에서의 유일한 차이점이다. 그런데 이렇게 class로 키워드를 바꿔놓으면 변수(구조체 변수)를 선언하지 못한다. Car run99 = {"run99", 100, 0}; // (X) 이유는 클래스 내에 선언된 함수에서가 아닌, 다른 영역에서 변수를 초기화하려 했기..
2024.04.12 -
13. [C++] C++에서의 구조체
구조체란? 연관있는 데이터를 하나로 묶으면, 프로그램 구현 및 관리를 용이하게 한다. 연관있는 데이터를 묶을 수 있는 문법적 장치 구조체의 예시) 자동차 소유주 연료량 현재 속도 struct Car{ char gamerID[ID_LEN]; int fuelGauge; int curSpeed; } C++에서의 구조체 변수 선언 c++에서는 별도의 typedef 선언 없이도 다음과 같이 변수를 선언할 수 있다. Car basicCar; Car simpleCar; Car run99={"run99", 100, 0}; RacingCar.cpp #include using namespace std; //구조체 Car와 관련된 정보 상수화 #define ID_LEN 20 #define MAX_SPD 200 #define..
2024.04.12 -
12. [C++] C++에서 C언어의 표준함수 호출하기
🍃 C++에서 C언어의 표준함수 사용하기 c를 더하고, .h를 빼자 #include -> #include #include -> #include #include -> #include #include -> #include 헤더파일의 확장자인 .h를 생략하고 앞에 c를 붙이면 C언어에 대응하는 C++의 헤더파일 이름이 된다. #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)); return 0; } 🍃 C++의 헤..
2024.04.11 -
11. [C++] malloc & free를 대신하는 new & delete
사전 지식 힙(Heap) 자료구조 메모리 할당에 사용하는 malloc과 free 🍃 new & delete malloc과 free를 사용한 힙 영역의 할당 #include "stdafx.h" #include #include using namespace std; using namespace System; char * MakeStrAdr(int len){ char *str = (char*)malloc(sizeof(char)*len); //문자열 저장을 위한 배열을 힙 영역에 할당 return str; } int main(void) { char *str = MakeStrAdr(20); strcpy(str, "I'm so happy"); //문자열을 str 변수에 복사 cout
2024.04.11 -
10. [C++] 참조자(Reference)와 함수2
🍃 참조자를 이용한 Call-by-reference의 황당함과 const 참조자 포인터는 잘못 사용할 확률이 높고, 참조자의 활용이 상대적으로 쉽기 때문에 참조자 기반의 함수정의가 더 좋은 선택이라고 생각할 수 있다. 하지만 참조자 기반의 함수정의에 좋은 점만 있는 것은 아니다. int num = 24; HappyFunc(num); cout
2024.04.11 -
9. [C++] 참조자(Reference)와 함수
🍃 Call-by-value & Call-by-reference Call-by-value 값을 인자로 전달하는 함수의 호출방식 Call-by-reference 주소 값을 인자로 전달하는 함수의 호출방식 이 중, Call-by-value 기반의 함수는 다음과 같이 정의된 함수를 의미한다. int Adder(int num1, int num2) { return num1 + num2; } 위 함수는 두 개의 정수를 인자로 요구하고 있다. Call-by-value 형태로 정의된 함수의 내부에서는, 함수외부에 선언된 변수에 접근이 불가능하다. 따라서 두 변수에 저장된 값을 서로 바꿔서 저장할 목적으로 다음과 같이 함수를 정의하면 원하는 결과를 얻을 수 없다. Call-by-value 기반의 함수 void SwapB..
2024.04.11