상세 컨텐츠

본문 제목

C++ beginning

C++/재료 준비

by 우정스키 2022. 12. 4. 19:06

본문

한 줄 소개

C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 C언어 기반으로 1983년 발표하여 발전한 프로그래밍 언어이다

 

역사

처음에 C with classes는 C 컴파일러에 클래스, 상속 클래스, 스트롱 타이핑, 인라인 확장, 기본 인수를 포함한 여러 기능들을 추가했었다

1983년, "C with classes"라는 이름은 가상 함수, 함수 이름, 연산자 오버로딩, 참조, 제약조건, type-safe free store 메모리 할당 (new/delete), 개선된 자료형 검사, BCPL 스타일의 1줄 코멘트(//)를 포함한 새로운 기능들을 추가하면서 "C++"로 변경되었다

 

특징

   다양한 기능을 가짐

-다중 상속

-템플릿

-연산자 오버로드

-예외 처리

-실행시 형 식별

   캡슐화

-데이터와 메서드 결합 만족하기

C++에서는 객체의 저장공간의 위치(this로 표현되는 객체의 데이터 위치 주소값)를 함수에 넘김으로써 데이터와 메서드를 결합한다

this는 객체의 위치 주소값인 포인터이다

-외부에 데이터나 메서드를 은닉하기

객체 지향 프로그래밍에서 작성된 프로그램 코드는 재사용이 중요한 요소이다

객체를 설계할 때 멤버 변수나 멤버 함수를 모두 알릴 필요가 없을 때도 있다

어떠 요소들은 내부에서 사용하고 비공개로 설정할 필요가 있다

해당 객체를 사용하거나 상속해서 사용할 때, 필요한 요소만을 공개하고 API을 작성하여 공개하면 된다

이런 비공개의 방법으로 은닉을 설정하고 캡슐화의 한 요소가 된다

   this

데이터와 메서드 결합은 멤버함수를 구성할 때 this라는 포인터로 상징되는 것을 개발자 코드 내에 코딩 없이도 자동으로 넘겨 주어 해당 클래스 내의 멤버 변수들을 사용하게 했다

this는 자동으로 객체의 공간위치 값이 메모리의 주소값이다(포인터로 사용)

어떤 객체인지를 구별하는 수단으로 사용하여 데이터와 메서드를 결합한다

클래스의 멤버함수는 실행할 때 모두 자동으로 this가 넘어간다

(static 메서드는 this가 제외된다)

this가 멤버 함수에 넘어가는 방법으로 CPU의 레지스터를 사용할 수도 있다

멤버 함수에서 멤버 변수를 사용할 때 레지스터에 저장된 객체의 위치 주소값으로 하여 내부 멤버변수의 상대주소값과 합하여 위치값을 다시 설정하고 액세스 하면 된다

 

출처

위키백과 C++ https://ko.m.wikipedia.org/wiki/C%2B%2B

'C++ > 재료 준비' 카테고리의 다른 글

클래스??  (0) 2022.12.05

관련글 더보기