전체 글(155)
-
Part2::Ch 01. 클래스 - 02. 클래스와 객체
1. 클래스데이터(속성)와 기능(함수)을 하나로 묶어 설계하는 틀(template)같은 것으로 어떤 객체를 만들기 위한 설계도라고 생각하면 된다 기존에 배웠던 struct와 비슷하다고 생각하면 된다. 2. 클래스의 정의class 클래스명 { // 멤버변수 및 함수}와 같이 정의하고 이를 실제 정의하는 예시는 class Car { int speed; std::string color;}와 같이 선언하면 된다. 3. 클래스의 선언클래스의 선언, 즉 사용하는 방법은 클래스명 객체명;과 같이 사용하며int main(){ Car car;}이렇게 정의가 가능하다. 이렇게 선언한 클래스를 객체라고 하며 클래스 자체는 실체가 아니고 틀이며 위처럼 선언을 해서 만들어진 객체가 진짜 클래스의 실체가 된다. ..
2025.04.29 -
Part2::Ch 01. 클래스 - 01. 객체지향 개괄
1. 객체지향이란 데이터와 데이터를 처리하는 함수를 하나의 '객체'라는 단위로 묶어 다루는 프로그래밍 패러다임으로 단순하게 설명하면 변수랑 그 변수를 다루는 함수까지 한 덩어리로 묶어서 하나의 '물건'처럼 다루자라는 것으로 데이터와 기능을 같이 묶어놓고 다루는 방식을 말하는 것이다 현실 세상을 비유해보면 만약 예를 들어 자동차의 경우는 어떤 색상인지, 얼마나 속도를 내는지에 대한 데이터가 존재하고 이 자동차가 전진하고, 후진하고, 멈추는 등의 기능이 존재하는데 이전 절차 지향의 경우는 이를 각각 따로 관리했었다.#include #include // 1. 데이터 구조만 따로 정의struct CarData { int speed; std::string color;};// 2. 동작(기능)들은 따로 ..
2025.04.29 -
Ch 10. 범위, 공간 - 03. 공간 기억 부류(자동, 정적, 동적)
1. 공간(Storage)공간은 변수가 메모리에 얼마나 오래 살아 있는지, 어디에 저장되는지를 결정하는 것을 분류해둔 것이다.이 공간은 자동 저장공간, 정적 저장공간, 동적 저장공간으로 나눌 수 있다. 2. 자동 저장공간 (Automatic Storage) 자동 저장공간은 함수 호출 시 생성되고 함수가 종료되면 소멸되고 메모리에서는 스택(stack)영역에 저장된다.void func() { int x = 10; // 자동 저장공간에 저장}// 종료될때 x는 자동 저장공간에서 해제됨x는 func()가 호출될 때 스택에 메모리 잡히게 되고 func()가 끝나면 자동으로 스택에서 메모리 해제됨 자동 저장공간은 보이는것 처럼 따로 메모리를 할당하거나 지울 필요가 없으며 보통 일반 지역 변수는 다 자동 저장공..
2025.04.29 -
Ch 10. 범위, 공간 - 02. 범위
범위, 스코프라고 부르는 것은 컴파일 타임에 변수에 접근이 가능한 여부에 대한 것으로 메모리에 할당되고 해제되는것에 대한 영향을 말하는것이 아닌 컴파일타임에 해당 변수에 접근이 가능한지에 대한 내용이다.우리가 자주 사용하고 자주사용하게될 스코프에 대한 내용을 알아보자. 1. 블록 범위(Block Scope)블록 범위는 {} 중괄호 내부에 선언된 것들을 의미하며 이 중괄호 내부에 선언된 것을은 중괄호 내부에서만 접근이 가능해진다.그래서 변수의 주소를 확인해보는 코드를 작성해보면 이렇게 블록 내부에서 접근하는 a의 경우는 블록 외부에서 접근하는 a와는 주소값이 다르고 블록 이전, 이후로도 이 값은 블록 내부 변수의 주소값과는 다르다는것을 볼 수 있다. 이건 할당과 해제와는 다르게 스코프에 의해서 블록 내부의..
2025.04.29 -
C++의 포인터 배열에 대해서
1. 포인터 배열포인터 배열이란 포인터들을 원소로 가지는 배열을 말한다.타입* 배열이름[크기];실 사용 예시는 아래와 같고int* arr[3]; // int* 타입의 요소를 3개 갖는 배열그 형태는int n1 = 10;int * ptr1 = &n1;int n2 = 20;int * ptr2 = &n2;int n3 = 30;int * ptr3 = &n3;int* ptrArr [3] = {ptr1, ptr2, ptr3};--------------------------------------------------- [ ptrArr ] │ │ ▼[ ptrArr[0] ] [ ptrArr[1] ] [ ptrArr[2] ] [ ptr1 ] [ ptr2 ] ..
2025.04.18 -
Ch 10. 범위, 공간 - 01. 빌드
기존엔 ctrl + f5와 같은 단축키로 빌드했었는데 이런 빌드 과정을 수동으로 한번 진행해보고 그 내부의 과정을 파악해보도록 하자. 확인하기 이전에 추가로 메인 함수의 파라미터에 대해서 아래 작성해놓았으니 확인해보도록 하고 내용을 보자 더보기메인함수의 파라미터C++의 main함수는 특별한 파라미터 두개를 받을 수 있다.int main(int argc, char* argv[]) 여기서 각각의 파라미터는 - int argc : argument count의 약자로, 전달 받은 아규먼트의 갯수를 담는다- char* argv[] : argument vector의 약자로, 전달 받은 아규먼트 값들을 배열로 담아온다. 그래서 우리가 사실은 ctrl + f5로 실행한 프로그램은 debug냐 release냐에 따라서 ..
2025.04.18