C++이란...

C++ 2019. 12. 23. 11:07
반응형

객체 지향_

①객체의 사용을 지원하는 시스템이나 언어에 적용되는 용어. 
객체 지향 프로그래밍(OOP) 언어로서의 요건을 구비하고 있음을 나타내는 용어. 이 요건은 데이터의 추상화, 정보의 캡슐화, 객체 간의 메시지 교환, 동적 구속, 계승의 5개 항목이다.

 

객체 지향

객체 지향컴퓨터인터넷IT용어대사전 컴퓨터로 컴파일할 때 만들어지는 객체 파일이 아니고 컴퓨터 과학의 방법론의 하나. 여기서 말하는 객체란 일반적으로 말하는 물건을 가리킨다. 물건은 단순한 데이터가 아니고 그 데이터의 조작 방법에 대한 정보도 포함하고 있어 그것을 대상으로서 다루는 수법이 객체 지향이다. 외국어 표기 object-oriented(영어) 객체 지향IT용어사전 ①객체의 사용을 지원하는 시스템이나 언어에 적용되는 용어. ②객체 지향 프로그래밍(O

terms.naver.com

 

클래스_

클래스와 구조체는 고유한 형식을 정의하는 데 사용되는 구문입니다. 클래스와 구조체 모두형식의 상태 및 동작을 설명하는 데 사용되는 데이터 멤버와 멤버 함수를 포함합니다.

 

필자_
클래스와 구조체의 차이점을 명확히 하는 것이 중요한데 그 차이점은 다음과 같다.

(사실 별 차이 없음)

 

클래스 구조체 공용체 차이_

구조체, 클래스 및 공용 구조체의 Access Control 및 제약 조건

 

구조체 클래스  공용체

클래스 키가 구조체

클래스 키가 클래스

클래스 키가 공용 구조체

기본 액세스가 공용임

기본 액세스가 개인임

기본 액세스가 공용임

사용 제약 조건 없음

사용 제약 조건 없음

한 번에 한 멤버만 사용

 

 

클래스 및 구조체(C++)

클래스 및 구조체(C++)Classes and Structs (C++) 이 문서의 내용 --> 이 섹션에서는 C++ 클래스 및 구조체를 소개합니다.This section introduces C++ classes and structs. 구조체에서는 기본 접근성이 공용이고, 클래스에서는 기본값이 개인이라는 점을 제외하면 C++에서 두 구문이 동일합니다.The two constructs are identical in C++ except that in struc

docs.microsoft.com

 

모던 C++_

모던 C++는 다음을 강조합니다.

  • 힙 또는 정적 전역 범위가 아닌 스택 기반 범위

  • 명시적 형식 이름이 아닌 자동 형식 유추

  • 원시 포인터가 아닌 스마트 포인터

  • 원시 char[] 배열 대신 std::string, std::wstring 형식 <string> 참조) 사용

  • 원시 배열이나 사용자 정의 컨테이너 대신 vector, list, map과 같은 C++ 표준 라이브러리의 컨테이너를 사용하세요. <vector ><list ><map >을 참조합니다.

  • 직접 만든 알고리즘 대신 C++ 표준 라이브러리의 알고리즘을 사용합니다.

  • 오류 조건 보고를 위한 예외 사용

  • 스레드간 통신 매커니즘을 C++ 표준 라이브러리의 std::atomic<> (참조 <atomic>)으로 사용

  • 작은 기능을 개별적으로 함수로 구현하는 대신 인라인 람다 함수를 사용

  • 배열, C++ 표준 라이브러리의 컨테이너 및 Windows 런타임 컬렉션과 함께, for ( for-range-declaration : expression )과 같은 형식의 강력한 루프를 작성할 수 있게 해주는 범위 기반 for 루프 사용. 핵심 언어 지원에 포함됩니다. 자세한 내용은 범위 기반 for 문(C++)를 참조합니다.

 

C++(최신 C++) 시작하기

C++(최신 C++) 시작하기Welcome back to C++ (Modern C++) 이 문서의 내용 --> 지난 25 년 C++ 동안은 전 세계에서 가장 널리 사용 되는 프로그래밍 언어 중 하나입니다.Over the past 25 years, C++ has been one of the most widely used programming languages in the world. 잘 작성된 C++ 프로그램은 빠르고 효율적입니다.Well-written C

docs.microsoft.com

 

 

객체지향 + 객체 + 모던 C++

이 세 가지가 현재의 C++를 말한다고 본다. 물론, C++를 엄연히 말하면 객체지향과 순차지향을 모두 겸비하고 있는 언어이며, 이로 인해 C++에서 C에 기반하는 프로그램을 만들지 말라는 법은 없다. 하지만 오늘날 대부분의 응용프로그램들은 C 단독으로 쓰여지는 코딩은 지양하는 쪽이며, 포인터 접근에 의한 엄격한 메모리의 관리 보다는 코더의 편의성 및 가독성을 강조하기 위한 C# 및 자바 등 여러 C++의 불편한 사항을 보완한 언어까지 등장하는 현실이다.

 

절차지향과 객체지향을 모두 가지고 있는 언어는 그 범용성이 극에 달할 수 있다는 것을 보여주는 언어이기도 하다. C에서도 객체지향을 닮은 구현을 할 수는 있겠지만 공식적으로 코더들이 사용할 수있고 또 MS에서 지원까지(버젼업 따위를 말하는 것이다.) 해주니 확실한 언어에 관리가 들어간다고 보면 되겠다.

 

무조건 객체지향만 지원하는 언어들도 결국 그 근간에 C++이 있고, 거진 들어봤을 법한 프로그램들의 그 근간, 뿌리를 들쳐보면 C++이 살아숨쉬고 있다. 이렇듯 아무리 사용가능한 메모리가 비대해지고 예전 날에 비해 가격이 저렴해지며, 여러 하드웨어들이 강력한 퍼포먼스를 내뿜는다 해도 결국, 그것을 많다고 헛으로 쓰는 것이 아닌 최적화하여 더욱더 강력한 퍼포먼스를 소프트웨어를 개발하는 코더들이 생겨날 것이다. 때문에 C++에 최적화 혹은 관리에 필요한 기술들 그 최적화에 꽤 도움이 될 것이다.

 

즉, C++은 옛날이든 미래든 응용프로그램의 뿌리가 될 것이다.

반응형

'C++' 카테고리의 다른 글

함수 호출 규약 - __thiscall, __clrcall  (0) 2019.12.23
함수 호출 규약 - __fastcall, __vectorcall  (0) 2019.12.23
함수 호출 규약 - __cdecl, __stdcall  (0) 2019.12.23
THREAD를 생성하는 5가지 방법  (0) 2019.12.23
메모리  (0) 2019.12.23
Posted by Lotus' Library
,