C++
c++의 설계 철학
-엄격한 타입 검사, 범용 언어, 효율적, 이식성
-여러 가지의 프로그래밍 스타일을 지원(절차 지향, 데이터 추상화, 객체 지향, 일반화)
-프로그래머가 자유롭게 선택할 수 있도록 설계
-최대한 C와 호환
-플랫폼에 의존적이거나 일반적이지 않은 특징은 제거
c++의 특징
-클래스(class) => 클래스를 이용하여 하나의 객체의 속성과 동작들은 한곳으로 모아서 정의
-상속(inheritance) => 클래스를 상속받아서 기존의 코드를 재사용
-연산자 중복(operator overloading) => 대상에 따라서 동일한 연산자로 새로운 연산을 정의
-함수 중복(function overloading) => 매개 변수만 다르면 동일한 이름의 함수를 여러 개 만들 수 있음
-동적 메모리(new, delete) => 동적 메모리 할당과 해제를 하는 연산자
-제네릭(generics) => 클래스 정의를 자료형에 상관없이 재사용
c++의 실행 속도
c++의 장점
-속도가 빠름
-멀티패러다임 프로그래밍 지원
-하드웨어 접근 가능
-메모리의 효율적 활용
-c언어와의 호환성
-고성능 게임, 인공지능, 장치 드라이버에 적합
주소의 이해
메모리는 커널영역과 유저영역으로 나뉘는데 커널영역에는 kernel이 위치하고 있고 운영체제 시스템의 모든 것을 통제하는 핵심이다. 따라서 사용자가 직접 접근할 수 없으며, 접근하려면 system call을 통해 커널모드로 전환을 해야한다.
위는 유저영역의 코드 영역, 데이터 영역, 힙 영역, 스택 영역이다.
-코드 영역: 시스템이 알아들을 수 있는 명령어가 저장되는 영역으로 CPU가 데이터를 수행할 때
명령어를 한번에 하나씩 수행한다.
-데이터 영역: 전역 변수와 static 변수가 저장되는 영역이다.
-힙 영역: 동적할당된 변수가 저장되는 영역이다. 런 타임에 크기가 결정된다.
-스택 영역: 함수 내의 지역 변수와 매개변수가 저장되는 영역이다. 컴파일 타임에 크기가 결정된다.
'Quality control (Univ. Study) > Data structure' 카테고리의 다른 글
ArrayStack(1) (0) | 2022.11.18 |
---|---|
자료구조론(5) (1) | 2022.10.06 |
자료구조론(4) (1) | 2022.10.03 |
자료구조론(3) (0) | 2022.09.26 |
자료구조론(2) (0) | 2022.09.12 |