데이터 은닉은 프로그램의 기능이 클래스 유형의 내부 표현에 직접 액세스하는 것을 방지하는 객체 지향 프로그래밍의 중요한 기능 중 하나입니다. 클래스 멤버에 대한 액세스 제한은 레이블이 지정된 액세스 수정자(클래스 본문 내의 public, private 및 protected 섹션)에 의해 지정됩니다. 회원 및 클래스에 대한 기본 액세스는 비공개입니다. class Base { public: // public members go here p
유형 한정자는 유형에 적용되는 키워드로 결과적으로 정규화된 유형이 됩니다. 예를 들어, const int는 상수 정수를 나타내는 한정된 형식이고 int는 해당하는 한정되지 않은 형식, 즉 단순히 정수입니다. 유형 한정자는 유형 시스템을 통해 값에 대한 추가 정보를 표현하고 데이터 사용의 정확성을 보장하는 방법입니다. 2014년 및 C11 기준으로 표준 C에는 const(C89), 휘발성(C89), 제한(C99) 및 _Atomic(C11)의 네 가지 유형 한정자가 있습니다. 이 중 처음 두 가지인 const와 volatile도 C++
C++와 같은 정적으로 유형이 지정된 언어에서 변수를 처음 선언할 때 해당 변수가 보유할 항목을 선언해야 합니다. int number = 42; 이 예에서 int는 변수 number가 정수만 보유할 수 있음을 나타내는 유형 지정자입니다. 루비나 자바스크립트와 같은 동적으로 유형이 지정된 언어에서는 변수를 선언하기만 하면 됩니다. var number = 42; C++에는 double, char, float 등과 같은 내장형 지정자가 많이 있습니다. 클래스 및 구조체를 생성하여 고유한 지정자를 생성할 수도 있습니다.
C++에서 부울의 유형 지정자는 bool입니다. 다음과 같이 사용할 수 있습니다 - bool myBoolean = true;
수정자는 필요에 따라 작동하도록 기본 유형의 의미를 변경하는 데 사용됩니다. 예를 들어 시간은 음수일 수 없으며 부호 없는 시간으로 만드는 것이 좋습니다. C++에서는 char, int 및 double 데이터 형식 앞에 수정자가 있을 수 있습니다. 데이터 유형 수정자는 여기에 나열됩니다 - 서명 서명되지 않음 긴 짧은 signed, unsigned, long 및 short 수정자는 정수 기본 유형에 적용할 수 있습니다. 또한 char에는 signed와 unsigned를 적용할 수 있고, double에는 long을 적용할 수 있습
volatile은 두 가지를 의미합니다 - 변수 값은 코드를 변경하지 않고도 변경될 수 있습니다. 따라서 컴파일러는 변수의 값을 읽을 때마다 그것이 마지막으로 읽었을 때와 같다거나 그것이 마지막으로 저장된 값과 같다고 가정하지 않을 수 있지만 다시 읽어야 합니다. 휘발성 변수에 값을 저장하는 행위는 외부에서 관찰할 수 있는 부작용이므로 컴파일러는 값을 저장하는 행위를 제거할 수 없습니다. 예를 들어 두 개의 값이 한 행에 저장되면 컴파일러는 실제로 값을 두 번 저장해야 합니다. 예를 들면: i = 2; i = i;
그래서 C++로 프로그래밍하는 방법을 배우기로 결정했지만 어디서부터 시작해야 할지 모릅니다. 다음은 시작하는 방법에 대한 간략한 개요입니다. C++ 컴파일러 가져오기 이 단계는 C++로 프로그래밍을 배우기 전에 수행할 첫 번째 단계입니다. 모든 주요 OS 플랫폼에서 사용할 수 있는 좋은 무료 C++ 컴파일러가 있습니다. 플랫폼에 맞는 것을 다운로드하거나 https://www.tutorialspoint.com/compile_cpp_online.php에서 tutorialspoint.com의 온라인 컴파일러를 사용할 수 있습니다. GC
C++에는 그런 키워드가 없습니다. C++ 키워드 목록은 C++ 언어 표준의 섹션 2.11/1에서 찾을 수 있습니다. 제한은 C 언어의 C99 버전에 있는 키워드이며 C++에는 없습니다. C에서 제한 수식 포인터(또는 참조)는 기본적으로 포인터 범위에 대해 포인터의 대상이 해당 포인터(및 포인터에서 복사된 포인터)를 통해서만 액세스된다는 컴파일러에 대한 약속입니다. C++ 컴파일러도 최적화 목적으로 이 정의를 지원하지만 공식 언어 사양의 일부는 아닙니다.
변수를 상수로 선언하기 위해 const 한정자를 사용합니다. 즉, 변수가 초기화되면 값을 변경할 수 없습니다. const를 사용하면 매우 큰 이점이 있습니다. 예를 들어, PI 값의 상수 값이 있는 경우 프로그램의 어떤 부분도 해당 값을 수정하는 것을 원하지 않습니다. 따라서 const로 선언해야 합니다. const 수식 유형으로 선언된 개체는 컴파일러에 의해 읽기 전용 메모리에 배치될 수 있으며 프로그램에서 const 개체의 주소를 가져오지 않으면 전혀 저장되지 않을 수 있습니다. 예를 들어, #include<iostream
C++에는 그런 키워드가 없습니다. C++ 키워드 목록은 C++ 언어 표준의 섹션 2.11/1에서 찾을 수 있습니다. 제한은 C 언어의 C99 버전에 있는 키워드이며 C++에는 없습니다. C에서 제한 수식 포인터(또는 참조)는 기본적으로 포인터 범위에 대해 포인터의 대상이 해당 포인터(및 포인터에서 복사된 포인터)를 통해서만 액세스된다는 컴파일러에 대한 약속입니다. C++ 컴파일러도 최적화 목적으로 이 정의를 지원하지만 공식 언어 사양의 일부는 아닙니다.
휘발성은 두 가지를 의미합니다 - - 코드를 변경하지 않고도 변수 값이 변경될 수 있습니다. 따라서 컴파일러는 변수의 값을 읽을 때마다 그것이 마지막으로 읽은 시간과 같다거나 마지막으로 저장된 값과 같다고 가정하지 않을 수 있지만 다시 읽어야 합니다. - 휘발성 변수에 값을 저장하는 행위는 외부에서 관찰할 수 있는 부작용이므로 컴파일러는 값을 저장하는 행위를 제거할 수 없습니다. 예를 들어 두 개의 값이 한 행에 저장되면 컴파일러는 실제로 값을 두 번 저장해야 합니다. 예를 들어 - i = 2; i = i; 컴파일러는 숫자
C++의 모든 숫자 유형에는 부호가 있거나 없을 수 있습니다. 예를 들어, 양의 정수만 나타내도록 int를 선언할 수 있습니다. 달리 지정하지 않는 한 모든 정수 데이터 유형은 부호 있는 데이터 유형입니다. 즉, 양수 또는 음수 값을 가집니다. unsigned 키워드는 기호 없이 변수를 선언하는 데 사용할 수 있습니다. 예시 #include<iostream> using namespace std; int main() { unsigned int i = -1; int x = i;
Auto는 거의 영원히 존재했지만 거의 사용되지 않은 C++가 C에서 상속한 키워드였습니다. 이 모든 것이 C++11의 컨텍스트에서 형식 추론을 수행하는 auto의 도입으로 변경되었습니다. C++ 11 이전에는 각 데이터 유형을 컴파일 시간에 명시적으로 선언해야 하므로 런타임 시 표현식 값이 제한되지만 C++의 새 버전 이후에는 프로그래머가 유형 추론을 컴파일러 자체에 맡길 수 있도록 하는 많은 키워드가 포함됩니다. 유형 유추 기능을 사용하면 컴파일러가 이미 알고 있는 내용을 작성하는 데 시간을 덜 보낼 수 있습니다. 모든 타입
이 가이드는 Visual Studio를 사용하여 C++로 응용 프로그램을 개발할 때 사용할 수 있는 많은 도구와 대화 상자에 익숙해지는 데 도움이 됩니다. 이 IDE에서 작업하는 방법에 대해 자세히 알아보는 데 도움이 되는 Hello, World 스타일의 콘솔 응용 프로그램을 만들 것입니다. 전제 조건 진행하려면 C++ 워크로드를 사용한 데스크톱 개발이 설치된 Visual Studio 2017 버전 15.3 이상의 복사본이 필요합니다. 빠른 설치 가이드는 Visual Studio에서 C++ 지원 설치(https://docs.micr
컴파일러와 소스 프로그램이 준비되면 C++ 프로그램을 컴파일하고 실행하는 것이 매우 쉽습니다. GCC 컴파일러를 설치했고 컴파일하려는 source.cpp 파일이 있다고 가정하고 다음 지침에 따라 컴파일하고 실행합니다. 1단계 − 새 터미널 창을 열거나 Windows를 사용 중인 경우 cmd를 엽니다. 2단계 − source.cpp 파일이 있는 디렉토리로 디렉토리를 변경합니다. 예를 들어, C:/Users/Dell/Documents에 있는 경우 명령줄 −을 입력합니다. $ cd C:/Users/Dell/Documents 3단
C에서 자동 저장소 클래스 지정자를 사용하면 자동 저장소가 있는 변수를 명시적으로 선언할 수 있습니다. 자동 저장 클래스는 블록 내부에 선언된 변수의 기본값입니다. 자동으로 저장되는 변수 x는 x가 선언된 블록이 종료되면 삭제됩니다. 자동 저장 클래스 지정자는 블록에 선언된 변수 이름이나 함수 매개변수 이름에만 적용할 수 있습니다. 그러나 이러한 이름에는 기본적으로 자동 저장이 있습니다. 따라서 스토리지 클래스 지정자 auto는 일반적으로 데이터 선언에서 중복됩니다. 처음에는 구문 호환성만을 위해 C++로 전달되었지만 나중에는 자동
C에서 레지스터 스토리지 클래스 지정자는 객체가 머신 레지스터에 저장되어야 함을 컴파일러에 나타냅니다. 레지스터 스토리지 클래스 지정자는 일반적으로 액세스 시간을 최소화하여 성능을 향상시키기 위해 루프 제어 변수와 같이 많이 사용되는 변수에 대해 지정됩니다. 그러나 컴파일러는 이 요청을 받아들일 필요가 없습니다. 대부분의 시스템에서 사용할 수 있는 레지스터의 크기와 수가 제한되어 있기 때문에 실제로 레지스터에 넣을 수 있는 변수는 거의 없습니다. C++에서는 단순히 사용되지 않는 예약 키워드이지만 C 코드와의 구문 호환성을 위해 유
정적 저장 클래스는 컴파일러가 프로그램의 수명 동안 지역 변수가 범위에 들어오고 나갈 때마다 생성 및 삭제하는 대신 로컬 변수를 유지하도록 지시합니다. 따라서 지역 변수를 정적으로 만들면 함수 호출 간에 값을 유지할 수 있습니다. 정적 수정자는 전역 변수에도 적용될 수 있습니다. 이 작업이 완료되면 해당 변수의 범위가 선언된 파일로 제한됩니다. C++에서 static이 클래스 데이터 멤버에 사용되면 해당 클래스의 모든 개체에서 해당 멤버의 복사본 하나만 공유하게 됩니다. 예시 #include <iostream> void
extern 스토리지 클래스 지정자를 사용하면 여러 소스 파일에서 사용할 수 있는 개체를 선언할 수 있습니다. extern 선언은 설명된 변수를 현재 소스 파일의 다음 부분에서 사용할 수 있도록 합니다. 이 선언은 정의를 대체하지 않습니다. 선언은 외부에서 정의된 변수를 설명하는 데 사용됩니다. extern 선언은 함수 외부 또는 블록의 시작 부분에 나타날 수 있습니다. 선언이 함수를 설명하거나 함수 외부에 나타나고 외부 연결이 있는 개체를 설명하는 경우 키워드 extern은 선택 사항입니다. 식별자에 대한 선언이 이미 파일 범위에
변경 가능한 저장소 클래스 지정자는 멤버가 const로 선언된 개체의 일부인 경우에도 수정할 수 있도록 클래스 데이터 멤버에만 사용됩니다. static 또는 const 또는 참조 멤버로 선언된 이름과 함께 가변 지정자를 사용할 수 없습니다. 다음 예에서 - class A { public: A() : x(4), y(5) { }; mutable int x; int y; }; int main() { const A var2