개념새로운 클래스는 기존 클래스의 속성과 메서드를 물려받을 수 있으며, 이를 통해 새로운 클래스는 기존 클래스의 기능을 확장하거나 수정할 수 있다.코드예시class Base { // 피상속 클래스, 부모클래스public: int base_var; void base_function() { // base class function }};class Derived : public Base { // 상속클래스, 자식클래스public: int derived_var; void derived_function() { // derived class function }};클래스 상속Derived 클래스가 Base 클래스를 상속한다.class Derived : publ..
#1 스코프란?식별자가 유효한 범위자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙식별자란 어떤 값을 구별하여 식별할 수 있는 고유한 이름이다. 변수나 함수의 이름을 식별자라고 한다. #2 스코프의 종류전역과 전역스코프전역이란 코드의 가장 바깥영역이다. 전역에 변수를 선언하면 전역변수가 된다. 전역변수는 어디서든지 참조할 수 있다.지역과 지역스코프지역이란 함수 몸체 내부이다. 지역변수는 자신의 지역 스코프와 하위 지역 스코프에서 유효하다. #3 스코프 체인정의: 스코프가 계층적으로 연결 된 것스코프체인은 물리적으로 렉시컬환경(lexical environment)라는 자료구조로 구현된다.변수참조시 자바스크립트 엔진은 스코프체인에서 참조되는 위치부터 시작해서 상위 스코프 방향으로 이동하며 선언된 변수를 ..
개념코드의 재사용성을 높이고 자료형에 독립적인 프로그래밍을 가능하게 하는 기능자료형을 추상화하여 클래스와 함수를 선언할 수 있다.template, typename 키워드를 사용한다.문법클래스 선언 위에 템플릿 예약어를 `template `처럼 사용한다.클래스의 인스턴스 생성 시 `` 안에 사용하고자 하는 자료형을 넣는다. 사례템플릿을 활용한 클래스 선언#include using namespace std;template class Calculator { public: Calculator() { result_ = 0; cout 템플릿이 활용된 클래스의 인스턴스 생성int main() { Calculator a; a.add(10, 12); a.print(); ..
구조체란?여러 개의 변수와 함수를 하나의 단위로 묶은 것구조체란 데이터의 집합을 정의하는 사용자 정의 자료형이다. 여러개의 변수를 하나의 단위로 묶어서 다루게한다. 각각의 변수와 함수를 구조체의 멤버라고 한다. 클래스와 달리 구조체의 멤버는 public 접근제어를 기본으로 가진다.struct MyStruct { int first; int second; int Sum() { return first + second; }};구조체를 선언 시 마지막에 세미콜론을 붙이는 것을 기억하자. 멤버구조체의 멤버란 구조체 내에 정의 된 변수나 함수다. 구조체는 멤버를 여러 개 가질 수 있다. 구조체 멤버 변수는 구조체의 인스턴스가 다룰 값을 저장한다. 구조체 멤버함수는 구조체의 데이터를 처리하거나 특정 작업을 실행한..
정적할당 vs 동적할당정적할당정적할당이란 프로그램에서 미리 메모리를 할당받는 방식이다. 컴파일 타임에 메모리의 크기와 위치가 결정된다.#include int main() { // 정적 할당: 배열의 크기가 고정되어 있음 int arr[5] = {1, 2, 3, 4, 5}; // 배열 요소 출력 for(int i = 0; i 동적할당동적할당이란 사용자의 지정에 따라 메모리를 할당받는 방식이다. 런타임에 메모리의 크기와 위치가 결정되며 필요에 따라 메모리를 할당받는 것이기 때문에 별도로 메모리 해제도 해야한다.#include int main() { // 동적 할당: 배열의 크기를 런타임에 결정 int n; std::cout > n; // 동적으로 메모리 할당 ..
#1 포인터란?변수의 메모리 주소를 저장하는 변수다. 포인터는 주소를 통해 데이터를 공유를 할 수 있게끔 도와준다.포인터 선언변수의 자료형에 따라 포인터의 자료형이 결정된다.char *p; // 포인터 p의 자료형: char*#2 포인터와 연산변수의 주소주소연산자(&)를 통해 변수의 주소를 반환받을 수 있다.int a = 123;int *p = &a; // 변수의 주소 받기포인터로 값 접근 · 변경역참조 연산자로 주소가 보관하는 값에 접근하고 값을 변경할 수 있다.// 값 접근int a = 456;int *p = &a;cout 변수 출력시 값이 변경 된 걸 확인할 수 있다.주소를 10진수로 표현하기포인터는 주소값을 저장한다. 주소값은 16진수 형태다. 10진수 형태로 표현하면 보기가 편하다.int a =..