Language&Framework&Etc112 클래스의 기본(03-2) 클래스(Class)와 객체(Object)-1 클래스와 구조체의 유일한 차이점 키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 된다. class Car { char ID[CAR_CONST::ID_LEN]; int fuel; int curspd; void showstate(); void accel(); void brake(); .... } 하지만, 이렇게 키워드를 바꿔놓으면 앞서 예제에서 보였던 다음의 방식으로 선언하지 못한다. Car car={"himan", 99, 0}; // (X) -> 구조체 변수 초기화 방식 이유 : 클래스 내에서 선언된 함수가 아닌, 다른 영역에서 변수를 초기화하려 했기 때문. 클래스는 기본적으로(별도의 선언을 하지 않으면) 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근이 가능하다.. 2020. 12. 24. 클래스의 기본(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. 이전 1 ··· 8 9 10 11 12 13 14 ··· 28 다음