초보자를 위한 C++ 학습 방법

Chobojaleul Wihan C Hagseub Bangbeob



C++는 가장 널리 사용되는 프로그래밍 언어입니다. 이 언어는 초기에 개발된 C 언어의 개선으로 확립되었으며 C 언어의 영향을 받았으므로 C 언어에서 액세스할 수 있고 사용되었던 다른 도구 및 라이브러리와 함께 작동하는 C 프로그래밍 언어의 상위 집합입니다. . 그것은 또한 오만한 컴파일된 언어입니다.

C++ 언어의 시작은 1983년으로 거슬러 올라갑니다. '비자레 스트로우스트럽' 연산자 오버로딩과 같은 몇 가지 추가 기능을 포함하여 C 언어의 클래스와 함께 작업했습니다. 사용된 파일 확장자는 '.c' 및 '.cpp'입니다. C++는 확장 가능하고 플랫폼에 종속되지 않으며 표준 템플릿 라이브러리의 약어인 STL을 포함합니다. 따라서 기본적으로 알려진 C++ 언어는 실제로 소스 파일을 함께 컴파일하여 개체 파일을 형성하고 링커와 결합하면 실행 가능한 프로그램을 생성하는 컴파일된 언어로 알려져 있습니다.

반면에 그 수준에 대해 이야기하면 드라이버나 커널과 같은 저수준 프로그래밍과 게임, GUI 또는 데스크톱 앱과 같은 고급 앱의 이점을 해석하는 중간 수준입니다. 그러나 구문은 C와 C++ 모두에서 거의 동일합니다.







C++ 언어의 구성 요소:

#include



이 명령은 'cout' 명령으로 구성된 헤더 파일입니다. 사용자의 필요와 기본 설정에 따라 둘 이상의 헤더 파일이 있을 수 있습니다.



정수 메인()





이 명령문은 모든 C++ 프로그램의 전제 조건인 마스터 프로그램 기능입니다. 즉, 이 명령문이 없으면 C++ 프로그램을 실행할 수 없습니다. 여기서 'int'는 함수가 반환하는 데이터 유형을 알려주는 반환 변수 데이터 유형입니다.

선언:



변수가 선언되고 이름이 할당됩니다.

문제 설명:

이것은 프로그램에서 필수적이며 'while' 루프, 'for' 루프 또는 다른 조건이 적용될 수 있습니다.

연산자:

연산자는 C++ 프로그램에서 사용되며 일부는 조건에 적용되기 때문에 중요합니다. 몇 가지 중요한 연산자는 &&, ||, !, &, !=, |, &=, |=, ^, ^=입니다.

C++ 입력 출력:

이제 C++의 입력 및 출력 기능에 대해 설명합니다. C++에서 사용되는 모든 표준 라이브러리는 바이트 시퀀스의 형태로 수행되거나 일반적으로 스트림과 관련된 최대 입력 및 출력 기능을 제공합니다.

입력 스트림:

바이트가 장치에서 주 메모리로 스트리밍되는 경우 입력 스트림입니다.

출력 스트림:

바이트가 반대 방향으로 스트리밍되면 출력 스트림입니다.

헤더 파일은 C++에서 입력 및 출력을 용이하게 하는 데 사용됩니다. 예를 들어 스튜 및 설정 정밀도와 같은 방법을 제공하는 으로 작성됩니다. 입력 및 출력 명령은 cin, cout, cerr 및 clog입니다. 여기서 'cin'은 표준 입력을 의미하고 'cout'는 화면에 문장을 표시하기 위해 스트림 삽입 연산자(<<)와 함께 사용되는 표준 출력 장치를 의미합니다.

예시:

문자 유형 문자열을 사용하여 문자열 메시지를 표시합니다.

첫 번째 줄에는 C++ 프로그램 실행에 필요한 거의 모든 필수 라이브러리가 있는 'iostream'이 포함되어 있습니다. 다음 줄에서는 식별자의 범위를 제공하는 네임스페이스를 선언합니다. main 함수를 호출한 후 문자열 메시지를 저장하는 문자형 배열을 초기화하고 'cout'은 이를 연결하여 표시합니다. 화면에 텍스트를 표시하기 위해 'cout'를 사용하고 있습니다. 또한 문자열을 저장하기 위해 문자 데이터 유형 배열을 갖는 변수 'A'를 가져온 다음 'cout' 명령을 사용하여 정적 메시지와 함께 두 배열 메시지를 모두 추가했습니다.

생성된 출력은 다음과 같습니다.

예시:

이 경우 간단한 문자열 메시지로 사용자의 나이를 나타냅니다.

첫 번째 단계에서는 라이브러리를 포함합니다. 그 다음에는 식별자의 범위를 제공하는 네임스페이스를 사용하고 있습니다. 다음 단계에서 우리는 기본() 기능. 그 후 나이를 'int' 변수로 초기화합니다. 입력에는 'cin' 명령을 사용하고 간단한 문자열 메시지의 출력에는 'cout' 명령을 사용합니다. 'cin'은 사용자로부터 나이 값을 입력하고 'cout'는 다른 정적 메시지에 이를 표시합니다.

이 메시지는 프로그램 실행 후 화면에 나타나 사용자가 나이를 알 수 있도록 한 후 ENTER 키를 누릅니다.

예시:

여기서는 'cout'을 사용하여 문자열을 인쇄하는 방법을 보여줍니다.

문자열을 인쇄하려면 처음에 라이브러리를 포함하고 식별자를 위한 네임스페이스를 포함합니다. 그만큼 기본() 함수가 호출됩니다. 또한 삽입 연산자와 함께 'cout' 명령을 사용하여 문자열 출력을 인쇄한 다음 화면에 정적 메시지를 표시합니다.

C++ 데이터 유형:

C++의 데이터 유형은 C++ 프로그래밍 언어의 기초이기 때문에 매우 중요하고 널리 알려진 주제입니다. 마찬가지로 사용되는 모든 변수는 지정되거나 식별된 데이터 유형이어야 합니다.

우리는 모든 변수에 대해 복원이 필요한 데이터 유형을 제한하기 위해 선언하는 동안 데이터 유형을 사용한다는 것을 알고 있습니다. 또는 데이터 유형이 항상 변수에 자신이 저장하는 데이터의 종류를 알려준다고 말할 수 있습니다. 변수를 정의할 때마다 컴파일러는 선언된 데이터 유형에 따라 메모리를 할당합니다. 각 데이터 유형에는 다른 메모리 저장 용량이 있기 때문입니다.

C++ 언어는 프로그래머가 필요한 적절한 데이터 유형을 선택할 수 있도록 데이터 유형의 다양성을 지원합니다.

C++는 아래 명시된 데이터 유형의 사용을 용이하게 합니다.

  1. 사용자 정의 데이터 유형
  2. 파생 데이터 유형
  3. 내장 데이터 유형

예를 들어, 몇 가지 공통 데이터 유형을 초기화하여 데이터 유형의 중요성을 설명하기 위해 다음 행이 제공됩니다.

정수 = ; // 정수 값

뜨다 F_N = 3.66 ; // 부동 소수점 값

더블 D_N = 8.87 ; // 이중 부동 소수점 값

알파 = '피' ; // 캐릭터

부울 b = 진실 ; // 부울

몇 가지 일반적인 데이터 유형: 지정하는 크기와 변수가 저장할 정보 유형이 아래에 나와 있습니다.

  • Char: 1바이트 크기로 단일 문자, 문자, 숫자 또는 ASCII 값을 저장합니다.
  • 부울: 1바이트 크기로 값을 저장하고 true 또는 false로 반환합니다.
  • Int: 2 또는 4바이트 크기로 소수점이 없는 정수를 저장합니다.
  • 부동 소수점: 4바이트 크기로 하나 이상의 소수가 있는 소수를 저장합니다. 최대 7자리의 10진수를 저장하는 데 적합합니다.
  • 이중 부동 소수점: 8바이트 크기로 하나 이상의 소수가 있는 소수도 저장합니다. 최대 15자리의 10진수를 저장하는 데 적합합니다.
  • Void: 지정된 크기가 없으면 void에는 무가치한 것이 포함됩니다. 따라서 null 값을 반환하는 함수에 사용됩니다.
  • 와이드 문자: 일반적으로 길이가 2 또는 4바이트인 8비트보다 큰 크기는 char와 유사하여 문자 값도 저장하는 wchar_t로 표시됩니다.

위에서 언급한 변수의 크기는 프로그램이나 컴파일러의 사용에 따라 다를 수 있습니다.

예시:

위에서 설명한 몇 가지 데이터 유형의 정확한 크기를 생성하는 간단한 코드를 C++로 작성해 보겠습니다.

이 코드에서는 라이브러리를 통합하고 있습니다. 그 다음에는 '네임스페이스'를 사용하고 있습니다. 다음 줄에서 우리는 기본() 프로그램에 지정된 모든 데이터 유형의 크기를 인쇄하는 'cout' 명령을 사용하는 함수입니다. 변수의 크기를 찾으려면 다음을 적용해야 합니다. sizeof() 방법.

출력은 그림과 같이 바이트 단위로 수신됩니다.

예시:

여기에 서로 다른 두 데이터 유형의 크기를 추가합니다.

먼저 식별자에 '표준 네임스페이스'를 활용하는 헤더 파일을 통합합니다. 다음으로, 기본() 함수가 호출되어 처음에는 'int' 변수를 초기화한 다음 'double' 변수를 초기화하여 이 두 변수의 크기 차이를 확인합니다. 그런 다음 크기는 다음을 사용하여 연결됩니다. sizeof() 기능. 출력은 'cout' 문으로 표시됩니다.

여기서 언급해야 할 용어가 하나 더 있습니다. '데이터 수정자' . 이름은 '데이터 수정자'가 내장 데이터 유형과 함께 사용되어 특정 데이터 유형이 컴파일러의 필요 또는 요구 사항에 따라 유지할 수 있는 길이를 수정하는 데 사용됨을 나타냅니다.

다음은 C++에서 액세스할 수 있는 데이터 수정자입니다.

  1. 서명
  2. 서명되지 않은
  3. 짧은

수정된 크기와 내장 데이터 유형의 적절한 범위는 데이터 유형 수정자와 결합될 때 아래에 언급됩니다.

  • Short int: 크기가 2바이트이며 -32,768에서 32,767까지 수정 범위가 있습니다.
  • Unsigned short int: 크기가 2바이트이고 0에서 65,535까지 수정 범위가 있습니다.
  • Unsigned int: 4바이트 크기로 0에서 4,294,967,295까지 수정 범위가 있습니다.
  • Int: 4바이트 크기로 -2,147,483,648에서 2,147,483,647까지 수정 범위가 있습니다.
  • Long int: 크기가 4바이트이고 수정 범위가 -2,147,483,648에서 2,147,483,647입니다.
  • Unsigned long int: 4바이트 크기로 0에서 4,294,967.295까지 수정 범위가 있습니다.
  • Long long int: 크기가 8바이트이고 -(2^63)에서 (2^63)-1까지 수정 범위가 있습니다.
  • Unsigned long long int: 크기가 8바이트이며 0에서 18,446,744,073,709,551,615까지 수정 범위가 있습니다.
  • 부호 있는 문자: 크기가 1바이트이며 -128에서 127까지 수정 범위가 있습니다.
  • Unsigned char: 1byte의 크기를 가지며 0에서 255까지 수정 범위가 있습니다.

C++ 열거:

C++ 프로그래밍 언어에서 '열거'는 사용자 정의 데이터 유형입니다. 열거형은 ' 열거' C++에서. 프로그램에서 사용되는 모든 상수에 특정 이름을 할당하는 데 사용됩니다. 프로그램의 가독성과 사용성을 향상시킵니다.

통사론:

다음과 같이 C++에서 열거형을 선언합니다.

열거 열거형 이름 { 상수1 , 상수2 , 상수3… }

C++에서 열거의 장점:

열거형은 다음과 같은 방법으로 사용할 수 있습니다.

  • switch case 문에서 자주 사용할 수 있습니다.
  • 생성자, 필드 및 메서드를 사용할 수 있습니다.
  • 'enum' 클래스만 확장할 수 있으며 다른 클래스는 확장할 수 없습니다.
  • 컴파일 시간을 늘릴 수 있습니다.
  • 통과할 수 있습니다.

C++에서 열거의 단점:

열거형에는 몇 가지 단점도 있습니다.

이름이 한 번 열거되면 동일한 범위에서 다시 사용할 수 없습니다.

예를 들어:

열거

{ 수능 , , 나의 } ;

정수 수능 = 8 ; // 이 줄에는 오류가 있습니다.

열거형을 앞으로 선언할 수 없습니다.

예를 들어:

열거 모양 ;

클래스 색상

{

무효의 그리다 ( 모양 ) ; //모양이 선언되지 않았습니다.

} ;

이름처럼 보이지만 정수입니다. 따라서 자동으로 다른 데이터 유형으로 변환할 수 있습니다.

예를 들어:

열거 모양

{

삼각형 , , 정사각형

} ;

정수 색깔 = 푸른 ;

색깔 = 정사각형 ;

예시:

이 예에서 우리는 C++ 열거의 사용법을 봅니다:

이 코드 실행에서는 먼저 #include 으로 시작합니다. 은 C++의 풍부한 라이브러리 중 하나입니다. 빌트인 라이브러리입니다. 여기에는 입력 및 출력 데이터 스트림이 포함됩니다. . 그 다음에는 Standard 네임스페이스를 사용합니다. 그런 다음 'enum'이라는 특정 이름을 Subject로 선언하고 Math, English, Urdu의 세 가지 과목을 할당했습니다. Math에는 값 1이 할당됩니다. 우리의 목표는 enum에 선언된 Subject의 값을 출력하는 것입니다. 그런 다음 호출합니다. 기본() 기능. ~ 안에 기본() cout<<, 여기서 'c'는 '문자'를 의미하고 out은 '출력'을 의미합니다. 'Cout'은 출력을 표시하는 데 사용됩니다. . <<는 삽입 연산자를 나타냅니다. 'cout<<'를 사용하여 열거형 값을 출력합니다. 다음으로 'return 0' 명령을 활용하겠습니다. 이 명령은 값의 형태로 결과를 반환합니다.

다음은 실행된 프로그램의 결과입니다.

따라서 Subject: Math, Urdu, English; 즉 1,2,3입니다.

예시:

다음은 enum에 대한 개념을 정리하는 또 다른 예입니다.

이 프로그램에서는 헤더 파일 을 통합하는 것으로 시작합니다. 빌트인 라이브러리입니다. 여기에는 입력 및 출력 데이터 스트림이 포함됩니다. 그런 다음 Standard 네임스페이스를 사용해야 합니다. 그런 다음 플레이어인 상수에 열거형 값을 할당했습니다. 우리의 목표는 누구의 위에 있는지 표시하는 것입니다. 다음으로 우리는 우리의 기본() 기능. 에서 기본() 함수는 두 개의 상수를 할당했습니다. Shadab은 'bowler1' 열거형 변수에 대해 20의 값을 갖습니다. 열거형 변수 'bowler2'에 대한 값이 25인 Afridi.

if-else 문을 사용해야 합니다. . 우리는 또한 'bowler2'가 'bowler1'보다 큰지 비교한다는 것을 의미하는 'if' 문 내부에 비교 연산자를 사용했습니다. 그런 다음 'if' 블록이 실행되어 Afridi가 끝났음을 의미합니다. 그런 다음 출력을 표시하기 위해 'cout<<'를 입력했습니다. 먼저 'It is over of'라는 문장을 출력합니다. 그런 다음 'bowler2'의 값입니다. 그렇지 않은 경우 else 블록이 호출되며 이는 Shadab이 종료되었음을 의미합니다. 그런 다음 'cout<<' 명령을 적용하여 'It is over of'라는 문장을 표시합니다. 그런 다음 'bowler1'의 값입니다.

If-else 문에 따르면 Afridi의 값인 25 이상이 있습니다. 열거형 변수 'bowler2'의 값이 'bowler1'보다 크므로 'if'문이 실행된다는 의미입니다.

C++ 그렇지 않은 경우 전환:

C++ 프로그래밍 언어에서는 'if 문'과 'switch 문'을 사용하여 프로그램의 흐름을 수정합니다. 이러한 명령문은 각각 언급된 명령문의 실제 값에 따라 프로그램 구현을 위한 여러 명령 세트를 제공하는 데 사용됩니다. 대부분의 경우 'if' 문의 대안으로 연산자를 사용합니다. 위에서 언급한 이러한 모든 진술은 결정 또는 조건문으로 알려진 선택 진술입니다.

'if' 문:

이 문은 프로그램의 흐름을 변경하고 싶을 때마다 주어진 조건을 테스트하는 데 사용됩니다. 여기에서 조건이 참이면 프로그램은 작성된 명령을 실행하지만 조건이 거짓이면 그냥 종료됩니다. 예를 들어 보겠습니다.

이것은 'int' 변수를 10으로 초기화하는 간단한 'if' 문입니다. 그런 다음 사용자로부터 값을 가져와 'if' 문에서 교차 확인합니다. 'if' 문에 적용된 조건을 만족하면 출력이 표시됩니다.

선택한 숫자가 40이므로 출력은 메시지입니다.

'If-else' 문:

'if' 문이 일반적으로 협력하지 않는 보다 복잡한 프로그램에서는 'if-else' 문을 사용합니다. 주어진 경우에 'if-else' 문을 사용하여 적용된 조건을 확인합니다.

먼저 사용자로부터 값을 가져오는 'x'라는 데이터 유형 'int'의 변수를 선언합니다. 이제 사용자가 입력한 정수 값이 2인 경우 조건을 적용한 'if' 문을 활용합니다. 원하는 값이 출력되고 간단한 'NICE TRY' 메시지가 표시됩니다. 그렇지 않고 입력된 숫자가 2가 아니면 출력이 달라집니다.

사용자가 숫자 2를 쓰면 다음 출력이 표시됩니다.

사용자가 2를 제외한 다른 숫자를 쓸 때 우리가 얻는 출력은 다음과 같습니다.

If-else-if 문:

중첩된 if-else-if 문은 매우 복잡하며 동일한 코드에 여러 조건이 적용될 때 사용됩니다. 다른 예를 사용하여 이에 대해 숙고해 보겠습니다.

여기서는 헤더 파일과 네임스페이스를 통합한 후 변수 'm'의 값을 200으로 초기화했습니다. 그런 다음 'm'의 값을 사용자로부터 가져와 프로그램에 명시된 여러 조건과 교차 확인합니다.

여기에서 사용자는 값 195를 선택했습니다. 이것이 출력이 이것이 'm'의 실제 값임을 나타내는 이유입니다.

스위치 문:

'switch' 문은 여러 값의 목록과 같은지 테스트해야 하는 변수에 대해 C++에서 사용됩니다. 'switch' 문에서 우리는 별개의 case 형태로 조건을 식별하고 모든 case는 각 case 문 끝에 break를 포함합니다. 여러 case에 적절한 조건과 명령문이 적용되어 있고 switch 문을 종료하고 조건이 지원되지 않는 경우 기본 문으로 이동하는 break 문을 사용합니다.

키워드 '중단':

switch 문에는 'break' 키워드가 포함됩니다. 다음 경우에 코드 실행을 중지합니다. C++ 컴파일러가 'break' 키워드를 만나면 switch 문의 실행이 종료되고 컨트롤이 switch 문 다음 행으로 이동합니다. 스위치에서 break 문을 사용할 필요는 없습니다. 사용하지 않으면 다음 케이스로 넘어갑니다.

공유된 코드의 첫 번째 줄에는 라이브러리가 포함되어 있습니다. 그 후 '네임스페이스'를 추가합니다. 우리는 호출 기본() 기능. 그런 다음 문자 데이터 유형 등급을 'F'로 선언합니다. 이 등급은 원하는 대로 선택할 수 있으며 선택한 경우에 대해 결과가 각각 표시됩니다. 결과를 얻기 위해 switch 문을 적용했습니다.

등급으로 'F'를 선택하면 'F'일 경우 출력하고자 하는 문장이기 때문에 '다음 번엔 더 잘 부탁해'가 출력됩니다.

등급을 X로 변경하고 무슨 일이 일어나는지 봅시다. 나는 성적으로 'X'를 썼고 받은 결과는 아래와 같습니다.

따라서 'switch'의 부적절한 대소문자는 자동으로 포인터를 기본 문으로 직접 이동하고 프로그램을 종료합니다.

If-else 및 switch 문에는 몇 가지 공통 기능이 있습니다.

  • 이러한 명령문은 프로그램이 실행되는 방법을 관리하는 데 사용됩니다.
  • 둘 다 조건을 평가하고 프로그램의 흐름을 결정합니다.
  • 표현 스타일은 다르지만 같은 목적으로 사용할 수 있습니다.

If-else 및 switch 문은 특정 방식에서 다릅니다.

  • 사용자가 'switch' case 문에서 값을 정의하는 반면 제약 조건은 'if-else' 문에서 값을 결정합니다.
  • 변경이 필요한 위치를 결정하는 데 시간이 걸리며 'if-else' 문을 수정하는 것은 어렵습니다. 반면에 'switch' 문은 쉽게 수정할 수 있기 때문에 업데이트가 간단합니다.
  • 많은 표현식을 포함하기 위해 수많은 'if-else' 문을 사용할 수 있습니다.

C++ 루프:

이제 C++ 프로그래밍에서 루프를 사용하는 방법을 알아보겠습니다. '루프'로 알려진 제어 구조는 일련의 명령문을 반복합니다. 즉, 반복 구조라고 합니다. 모든 문장은 순차 구조로 한 번에 실행됩니다. . 반면에 조건 구조는 지정된 문장에 따라 표현식을 실행하거나 생략할 수 있습니다. 특정 상황에서 명령문을 두 번 이상 실행해야 할 수도 있습니다.

루프 유형:

루프에는 세 가지 범주가 있습니다.

루프의 경우:

루프는 주기처럼 반복되고 제공된 조건의 유효성을 검사하지 않으면 중지됩니다. 'for' 루프는 일련의 명령문을 여러 번 구현하고 루프 변수에 대처하는 코드를 압축합니다. 이것은 'for' 루프가 정해진 횟수만큼 반복되는 루프를 생성할 수 있도록 하는 특정 유형의 반복 제어 구조인 방법을 보여줍니다. 루프를 사용하면 간단한 한 줄의 코드를 사용하여 'N'개의 단계를 실행할 수 있습니다. 소프트웨어 응용 프로그램에서 'for' 루프를 실행하는 데 사용할 구문에 대해 이야기해 보겠습니다.

'for' 루프 실행 구문:

예시:

여기에서 루프 변수를 사용하여 'for' 루프에서 이 루프를 조절합니다. 첫 번째 단계는 루프로 언급하고 있는 이 변수에 값을 할당하는 것입니다. 그런 다음 카운터 값보다 작은지 큰지 정의해야 합니다. 이제 루프의 본문이 실행되고 문이 true를 반환하는 경우 루프 변수도 업데이트됩니다. 위의 단계는 종료 조건에 도달할 때까지 자주 반복됩니다.

  • 초기화 표현식: 처음에는 루프 카운터를 이 표현식의 초기 값으로 설정해야 합니다.
  • 테스트 표현식 : 이제 주어진 표현식에서 주어진 조건을 테스트해야 합니다. 기준이 충족되면 'for' 루프의 본문을 수행하고 표현식을 계속 업데이트합니다. 그렇지 않다면 우리는 멈춰야 합니다.
  • 표현식 업데이트: 이 표현식은 루프 본문이 실행된 후 루프 변수를 특정 값만큼 증가 또는 감소시킵니다.

'For' 루프의 유효성을 검사하는 C++ 프로그램 예제:

예시:

이 예는 0에서 10까지의 정수 값 인쇄를 보여줍니다.

이 시나리오에서 우리는 0에서 10까지의 정수를 출력해야 합니다. 먼저 임의의 변수 i를 초기화하고 값이 '0'인 다음 이미 사용한 조건 매개변수가 i<=10인 경우 조건을 확인합니다. 그리고 조건을 만족하고 참이 되면 'for' 루프의 실행이 시작됩니다. 실행 후, 두 개의 증가 또는 감소 매개변수 중 하나가 실행되어야 하며 여기서 지정된 조건 i<=10이 거짓이 될 때까지 변수 i의 값이 증가합니다.

조건 i<10인 반복 횟수:

의 수

반복

변수 나는 <10 동작
첫 번째 나는=0 진실 0이 표시되고 i가 1씩 증가합니다.
나는=1 진실 1이 표시되고 i가 2씩 증가합니다.
제삼 나는=2 진실 2가 표시되고 i가 3씩 증가합니다.
네번째 나는=3 진실 3이 표시되고 i가 4씩 증가합니다.
다섯 번째 나는=4 진실 4가 표시되고 i가 5씩 증가합니다.
육분의 하나 나는=5 진실 5가 표시되고 i가 6씩 증가합니다.
제칠 나는=6 진실 6이 표시되고 i가 7씩 증가합니다.
여덟 번째 나는=7 진실 7이 표시되고 i는 8만큼 증가합니다.
제구 나는=8 진실 8이 표시되고 i는 9씩 증가합니다.
제십 나는=9 진실 9가 표시되고 i가 10씩 증가합니다.
십일 나는=10 진실 10이 표시되고 i가 11씩 증가합니다.
열두 번째 나는=11 거짓 루프가 종료됩니다.

예시:

다음 인스턴스는 정수 값을 표시합니다.

위의 경우 'a'라는 이름의 변수는 50이라는 값으로 초기화됩니다. 변수 'a'가 70보다 작은 경우에 조건이 적용됩니다. 그런 다음 'a'의 값이 다음과 같이 추가되도록 업데이트됩니다. 2. 'a' 값은 초기 값 50에서 시작하여 조건이 false를 반환하고 'a' 값이 70에서 증가하고 루프가 종료될 때까지 루프 전체에 동시에 2가 추가됩니다.

반복 횟수:

의 수

반복

변하기 쉬운 a=50 동작
첫 번째 a=50 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 50은 52가 됩니다.
a=52 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 52는 54가 됩니다.
제삼 a=54 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 54는 56이 됩니다.
네번째 a=56 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 56은 58이 됩니다.
다섯 번째 a=58 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 58은 60이 됩니다.
육분의 하나 a=60 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 60은 62가 됩니다.
제칠 a=62 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 62는 64가 됩니다.
여덟 번째 a=64 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 64는 66이 됩니다.
제구 a=66 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 66은 68이 됩니다.
제십 a=68 진실 a의 값은 두 개의 정수를 더 추가하여 업데이트되고 68은 70이 됩니다.
십일 a=70 거짓 루프가 종료됨

루프 동안:

정의된 조건이 충족될 때까지 하나 이상의 명령문이 실행될 수 있습니다. 반복을 미리 알 수 없을 때 매우 유용합니다. 먼저 조건을 확인한 다음 루프의 본문에 들어가 명령문을 실행하거나 구현합니다.

첫 번째 줄에서 헤더 파일 과 표준 네임스페이스를 통합합니다. 우리는 전화 기본() 기능. 여기에서 변수 ''를 초기화합니다. 다음 줄에서는 while 조건을 적용합니다. while 조건 내에서 'cout' 문을 사용하여 기록된 값을 표시합니다. 그런 다음 증가 연산자를 사용하여 개수를 늘립니다. 마지막 줄에서 'return 0' 문을 사용하여 프로그램을 종료합니다.

Do-While 루프:

정의된 조건이 충족되면 일련의 명령문이 수행됩니다. 먼저 루프의 몸체가 수행됩니다. 그 후 조건이 참인지 아닌지 확인합니다. 따라서 명령문은 한 번 실행됩니다. 루프의 본문은 조건을 평가하기 전에 'Do-while' 루프에서 처리됩니다. 프로그램은 필요한 조건이 충족될 때마다 실행됩니다. 그렇지 않으면 조건이 거짓일 때 프로그램이 종료됩니다.

여기에서 헤더 파일 을 통합합니다. 우리는 활용 기본() 프로그램의 기능. 그런 다음 4개의 정수를 초기화하고 'cin' 문을 사용하여 사용자가 값을 입력할 수 있도록 합니다. 다음 줄에서는 두 개의 서로 다른 정수를 초기화합니다. 우리는 'do' 문을 적용합니다. 명령문 내에서 두 개의 산술 함수를 사용합니다. 먼저 곱하기 연산자를 사용하고 두 번째로 더하기 연산자를 사용합니다. 그런 다음 프로그램의 'do' 문 외부에 'while' 조건을 적용합니다. 또한 'result' 정수를 통해 결과를 인쇄하기 위해 'cout' 문을 추가합니다. 마지막 줄에서 프로그램을 종료하기 위해 return 0 명령을 사용합니다.

C++ 계속/중단:

C++ 계속 문:

계속 문은 C++ 프로그래밍 언어에서 루프의 현재 구현을 피하고 제어를 후속 반복으로 이동하는 데 사용됩니다. 루핑하는 동안 계속 문을 사용하여 특정 문을 건너뛸 수 있습니다. 또한 실행문과 함께 루프 내에서 잘 활용됩니다. 특정 조건이 true인 경우 continue 문 다음의 모든 문은 구현되지 않습니다.

for 루프 사용:

이 경우 C++의 continue 문과 함께 'for 루프'를 사용하여 지정된 요구 사항을 전달하는 동안 필요한 결과를 얻습니다.

먼저 라이브러리를 포함하고 'namespace std'를 사용합니다. 그럼 우리는 전화 기본() 기능. for 루프를 활용합니다. for 루프 내에서 3과 8 사이에 있는 것으로 간주되는 변수 'k'를 선언합니다. 조건을 사용하여 (k = = 5)인 경우에도 반복을 계속합니다. 그런 다음 조건을 지정한 후 'continue' 문을 사용합니다. 결국. 출력을 표시하기 위해 'return 0' 명령과 함께 'cout' 명령을 사용합니다.

while 루프 사용:

이 데모 전체에서 우리는 어떤 종류의 출력이 생성될 수 있는지 확인하기 위해 몇 가지 조건을 포함하여 'while 루프'와 C++ 'continue' 문을 모두 사용했습니다.

이 예에서는 40에만 숫자를 추가하는 조건을 설정했습니다. 입력한 정수가 음수이면 'while' 루프가 종료됩니다. 반면에 숫자가 40보다 크면 해당 숫자는 반복에서 건너뜁니다.

'namespace std'를 활용하여 라이브러리를 포함하고 다음을 호출합니다. 기본() 기능. 변수 's'를 초기화합니다. 다음 단계에서 또 다른 변수 '숫자'가 선언됩니다. 우리는 'while' 루프를 사용합니다. 이제 필요한 값이 0 이상이어야 한다는 조건을 지정합니다. 모든 양수를 더하기 위해 '+= number' 문을 사용합니다. 'cout' 명령은 'Enter any number' 콘솔에 메시지를 표시하기 위해 적용됩니다. 'cin' 문을 사용하여 사용자로부터 정수를 얻습니다. 우리는 또한 'if' 문을 사용합니다. 정의된 숫자가 40보다 클 때마다 메시지가 표시됩니다. 그런 다음 '계속' 명령을 사용했습니다. 이 모든 단계가 끝나면 'continue' 문이 실행됩니다. 모든 숫자의 합을 표시하기 위해 'cout' 문을 사용합니다.

C++ break 문:

C++의 루프에서 break 문이 사용될 때마다 루프가 즉시 종료되고 루프 이후의 명령문에서 프로그램 제어가 다시 시작됩니다. 'switch' 문 내에서 케이스를 종료하는 것도 가능합니다.

for 루프 사용:

여기서 우리는 'break' 문과 함께 'for' 루프를 활용하여 다른 값을 반복함으로써 출력을 관찰할 것입니다.

먼저 헤더 파일을 통합합니다. 다음으로 'namespace std'를 활용합니다. main() 함수를 호출한 후 루프에 사용했습니다. 여기에서 변수 'm'을 초기화합니다. 'm'의 값이 10과 20 사이에 있는 조건을 적용할 것입니다. 'break' 조건은 마치 (m == 17)처럼 실행됩니다. 결과를 인쇄하기 위해 'cout'을 사용했습니다. 그러면 'return 0' 명령이 적용됩니다.

while 루프 사용:

break 문과 함께 'while' 루프를 사용할 것입니다.

먼저 라이브러리를 가져옵니다. 'namespace std'가 포함됩니다. main() 메서드 내에서 두 개의 변수 'nbr'과 'x'가 초기화됩니다. 우리는 'while' 루프를 사용하고 'true'를 인수로 전달했습니다. 사용자로부터 가치를 얻기 위해 'cin' 명령을 사용합니다. 다음으로 'if' 문을 활용했습니다. 이와 함께 if (nbr < 0) 조건을 지정하기 위해 'break' 조건이 적용됩니다. 모든 양수 값을 추가하기 위해 'x += nbr' 공식을 사용했습니다. 이 합계를 표시하기 위해 'cout' 문을 추가했습니다.

C++ 함수:

함수는 이미 알려진 프로그램을 호출될 때만 실행되는 여러 코드 조각으로 구조화하는 데 사용됩니다. C++ 프로그래밍 언어에서 함수는 적절한 이름이 지정되고 호출되는 명령문의 그룹으로 정의됩니다. 사용자는 매개변수라고 하는 함수에 데이터를 전달할 수 있습니다. 함수는 코드가 재사용될 가능성이 가장 높을 때 작업을 구현해야 합니다.

함수 생성:

C++는 다음과 같은 미리 정의된 많은 기능을 제공하지만 기본(), 코드 실행을 용이하게 합니다. 같은 방식으로 요구 사항에 따라 기능을 만들고 정의할 수 있습니다. 모든 일반 함수와 마찬가지로 여기에서도 '()' 뒤에 괄호를 추가하는 선언에 대한 함수 이름이 필요합니다.

통사론:

공허한 노동 ( )

{

// 함수의 본체

}

Void는 함수의 반환 유형입니다. 노동은 그것에 주어진 이름이고 중괄호는 우리가 실행할 코드를 추가하는 함수의 본문을 묶을 것입니다.

함수 호출:

코드에서 선언된 함수는 호출될 때만 실행됩니다. 함수를 호출하려면 세미콜론 ';'이 뒤에 오는 괄호와 함께 함수 이름을 지정해야 합니다.

예시:

이 상황에서 사용자 정의 함수를 선언하고 구성해 보겠습니다.

처음에는 모든 프로그램에 설명된 대로 프로그램 실행을 지원하기 위한 라이브러리와 네임스페이스가 할당됩니다. 사용자 정의 함수 노동() 항상 쓰기 전에 호출됩니다 기본() 기능. 라는 함수 노동() '노동은 존중받을 가치가 있습니다!'라는 메시지가 표시되는 곳에 선언됩니다. 에서 기본() 정수 반환 유형을 가진 함수, 우리는 노동() 기능.

이것은 여기에 표시되는 사용자 정의 함수에 정의된 간단한 메시지입니다. 기본() 기능.

무효의:

앞서 언급한 사례에서 우리는 사용자 정의 함수의 반환 유형이 void라는 것을 알았습니다. 이는 함수에서 반환되는 값이 없음을 나타냅니다. 이것은 값이 없거나 null일 가능성이 있음을 나타냅니다. 함수가 메시지를 인쇄할 때마다 반환 값이 필요하지 않기 때문입니다.

이 void는 이 함수가 호출되는 동안 실제 값을 취하지 않는다는 것을 명확하게 나타내기 위해 함수의 매개변수 공간에서 유사하게 사용됩니다. 위의 상황에서 우리는 또한 호출합니다 노동() 기능:

공허한 노동 ( 무효의 )

{

커트 << “노동은 존중받아 마땅하다. ! ' ;

}

실제 매개변수:

함수에 대한 매개변수를 정의할 수 있습니다. 함수의 매개변수는 함수 이름에 추가되는 함수의 인수 목록에 정의됩니다. 함수를 호출할 때마다 매개변수의 실제 값을 전달하여 실행을 완료해야 합니다. 이것들은 실제 매개변수로 결론지어집니다. 반면에 함수가 정의된 동안 정의된 매개변수를 형식 매개변수라고 합니다.

예시:

이 예에서는 함수를 통해 두 정수 값을 교환하거나 대체하려고 합니다.

처음에는 헤더 파일을 가져옵니다. 사용자 정의 함수는 이름이 선언되고 정의된 보결(). 이 함수는 i와 n인 두 정수 값의 대체에 사용됩니다. 다음으로 산술 연산자는 이 두 정수의 교환에 사용됩니다. 첫 번째 정수 'i'의 값은 'n' 값 대신 저장되고 n의 값은 'i' 값 대신 저장됩니다. 그런 다음 값을 전환한 후 결과가 인쇄됩니다. 에 대해 이야기하자면 기본() 함수에서 사용자로부터 두 정수의 값을 가져와 표시합니다. 마지막 단계에서 사용자 정의 함수 보결() 가 호출되고 두 값이 교환됩니다.

이 두 숫자를 대입하면 보결() 함수에서 매개변수 목록 내 'i'와 'n'의 값은 형식 매개변수입니다. 실제 매개변수는 마지막에 전달되는 매개변수입니다. 기본() 대체 함수가 호출되는 함수입니다.

C++ 포인터:

C++의 포인터는 배우기 쉽고 사용하기 좋습니다. C++ 언어에서 포인터는 우리의 작업을 쉽게 만들고 포인터가 관련될 때 모든 작업이 매우 효율적으로 작동하기 때문에 사용됩니다. 또한 동적 메모리 할당과 같이 포인터를 사용하지 않으면 수행되지 않는 몇 가지 작업이 있습니다. 포인터에 대해 이야기할 때 이해해야 하는 주요 아이디어는 포인터가 정확한 메모리 주소를 값으로 저장할 변수일 뿐이라는 것입니다. C++에서 포인터를 광범위하게 사용하는 이유는 다음과 같습니다.

  • 한 기능을 다른 기능으로 전달합니다.
  • 힙에 새 개체를 할당합니다.
  • 배열의 요소 반복

일반적으로 '&'(앰퍼샌드) 연산자는 메모리에 있는 개체의 주소에 액세스하는 데 사용됩니다.

포인터 및 해당 유형:

포인터에는 다음과 같은 여러 유형이 있습니다.

  • 널 포인터: 이들은 C++ 라이브러리에 저장된 값이 0인 포인터입니다.
  • 산술 포인터: 여기에는 ++, –, +, -와 같이 액세스할 수 있는 네 가지 주요 산술 연산자가 포함됩니다.
  • 포인터 배열: 그것들은 일부 포인터를 저장하는 데 사용되는 배열입니다.
  • 포인터에 대한 포인터: 포인터 위에 포인터가 사용되는 곳입니다.

예시:

몇 가지 변수의 주소가 인쇄된 다음 예를 숙고하십시오.

헤더 파일과 표준 네임스페이스를 포함시킨 후 두 개의 변수를 초기화합니다. 하나는 i'로 표현되는 정수 값이고 다른 하나는 10자 크기의 문자형 배열 'I'입니다. 두 변수의 주소는 'cout' 명령을 사용하여 표시됩니다.

우리가 받은 출력은 아래와 같습니다.

이 결과는 두 변수의 주소를 보여줍니다.

반면에 포인터는 값 자체가 다른 변수의 주소인 변수로 간주됩니다. 포인터는 항상 (*) 연산자로 생성된 동일한 유형의 데이터 유형을 가리킵니다.

포인터 선언:

포인터는 다음과 같이 선언됩니다.

유형 * ~였다 - 이름 ;

포인터의 기본 유형은 'type'으로 표시되고 포인터의 이름은 'var-name'으로 표시됩니다. 그리고 포인터에 변수를 부여하기 위해 별표(*)가 사용됩니다.

변수에 포인터를 할당하는 방법:

정수 * 파이 ; //정수 데이터 유형의 포인터

더블 * PD ; //이중 데이터 유형의 포인터

뜨다 * PF ; // float 데이터 유형의 포인터

* PC ; //char 데이터 유형의 포인터

거의 항상 데이터 유형에 관계없이 모든 포인터에 대해 처음에 동일한 메모리 주소를 나타내는 긴 16진수가 있습니다.

예시:

다음 인스턴스는 포인터가 '&' 연산자를 대체하고 변수의 주소를 저장하는 방법을 보여줍니다.

라이브러리 및 디렉토리 지원을 통합할 예정입니다. 그런 다음 기본() 여기서 'int' 유형의 변수 'n'을 먼저 선언하고 값 55로 초기화합니다. 다음 줄에서 'p1'이라는 포인터 변수를 초기화합니다. 그런 다음 'n' 변수의 주소를 포인터 'p1'에 할당하고 변수 'n'의 값을 표시합니다. 'p1' 포인터에 저장된 'n'의 주소가 표시됩니다. 이후 'cout' 명령어를 이용하여 '*p1'의 값을 화면에 출력한다. 출력은 다음과 같습니다.

여기서 'n'의 값은 55이고 포인터 'p1'에 저장된 'n'의 주소는 0x6ffe14로 표시됩니다. 포인터 변수의 값을 찾았고 정수 변수의 값과 같은 55입니다. 따라서 포인터는 변수의 주소를 저장하고 * 포인터에는 정수 값이 저장되어 결과적으로 초기에 저장된 변수 값을 반환합니다.

예시:

문자열의 주소를 저장하는 포인터를 사용하는 또 다른 예를 살펴보겠습니다.

이 코드에서는 라이브러리와 네임스페이스를 먼저 추가합니다. 에서 기본() 함수를 사용하려면 'Mascara' 값이 포함된 'makeup'이라는 문자열을 선언해야 합니다. 구성 변수의 주소를 저장하기 위해 스트링 타입 포인터 '*p2'가 사용된다. 그러면 변수 'makeup'의 값이 'cout' 문을 사용하여 화면에 표시됩니다. 이후 'makeup' 변수의 주소가 출력되고, 마지막에 'makeup' 변수의 메모리 주소를 포인터로 보여주는 포인터 변수 'p2'가 표시됩니다.

위 코드에서 받은 출력은 다음과 같습니다.

첫 번째 줄에는 'makeup' 변수 값이 표시됩니다. 두 번째 줄은 'makeup' 변수의 주소를 보여줍니다. 마지막 줄에는 포인터를 사용한 'makeup' 변수의 메모리 주소가 표시됩니다.

C++ 메모리 관리:

C++에서 효과적인 메모리 관리를 위해 C++에서 작업하는 동안 메모리 관리에 많은 작업이 도움이 됩니다. C++를 사용할 때 가장 일반적으로 사용되는 메모리 할당 절차는 런타임 중에 메모리가 변수에 할당되는 동적 메모리 할당입니다. 컴파일러가 변수에 메모리를 할당할 수 있는 다른 프로그래밍 언어와는 다릅니다. C++에서는 동적으로 할당된 변수의 할당 해제가 필요하므로 변수가 더 이상 사용되지 않을 때 메모리가 해제됩니다.

C++에서 메모리의 동적 할당 및 할당 해제를 위해 ' 새로운' 그리고 '삭제' 작업. 메모리가 낭비되지 않도록 메모리를 관리하는 것이 중요합니다. 메모리 할당이 쉽고 효과적이 됩니다. 모든 C++ 프로그램에서 메모리는 힙 또는 스택의 두 가지 측면 중 하나로 사용됩니다.

  • 스택 : 함수 내부에 선언된 모든 변수와 함수와 관련된 모든 세부 사항은 스택에 저장됩니다.
  • 더미 : 모든 종류의 사용되지 않은 메모리 또는 프로그램 실행 중에 동적 메모리를 할당하거나 할당하는 부분을 힙이라고 합니다.

배열을 사용하는 동안 메모리 할당은 런타임이 아니면 메모리를 결정할 수 없는 작업입니다. 따라서 어레이에 최대 메모리를 할당하지만 대부분의 경우 메모리가 사용되지 않고 낭비되기 때문에 이는 좋은 방법이 아닙니다. 이는 개인용 컴퓨터에 좋은 옵션이나 방법이 아닙니다. 이것이 런타임 동안 힙에서 메모리를 할당하는 데 사용되는 몇 가지 연산자가 있는 이유입니다. 2개의 주요 연산자인 'new'와 'delete'는 효율적인 메모리 할당 및 할당 해제를 위해 사용됩니다.

C++ 새 연산자:

new 연산자는 메모리 할당을 담당하며 다음과 같이 사용됩니다.

이 코드에는 라이브러리와 네임스페이스가 포함되어 있습니다. 그런 다음 'int' 데이터 유형으로 포인터를 초기화했습니다. 다음 줄에서 이 포인터는 'new' 연산자로 할당됩니다.

포인터를 사용하여 메모리가 'int' 변수에 성공적으로 할당되었습니다.

C++ 삭제 연산자:

변수 사용을 완료할 때마다 한 번 할당한 메모리가 더 이상 사용되지 않기 때문에 할당을 해제해야 합니다. 이를 위해 'delete' 연산자를 사용하여 메모리를 해제합니다.

지금 검토할 예는 두 연산자를 모두 포함하는 것입니다.

사용자로부터 가져온 세 가지 다른 값의 평균을 계산합니다. 포인터 변수는 값을 저장하기 위해 'new' 연산자로 할당됩니다. 평균 공식이 구현됩니다. 이후 'new' 연산자를 사용하여 포인터 변수에 저장된 값을 삭제하는 'delete' 연산자를 사용합니다. 이것은 런타임 중에 할당이 이루어지고 프로그램이 종료된 직후 할당 해제가 발생하는 동적 할당입니다.

메모리 할당을 위한 배열 사용:

이제 배열을 활용하면서 'new', 'delete' 연산자를 어떻게 사용하는지 알아보겠습니다. 동적 할당은 구문이 거의 동일하기 때문에 변수에 대해 발생한 것과 동일한 방식으로 발생합니다.

주어진 인스턴스에서 우리는 사용자로부터 값을 가져오는 요소의 배열을 고려하고 있습니다. 배열의 요소를 가져오고 포인터 변수를 선언한 다음 메모리를 할당합니다. 메모리 할당 직후 배열 요소의 입력 절차가 시작됩니다. 다음으로 배열 요소의 출력은 'for' 루프를 사용하여 표시됩니다. 이 루프는 n으로 표시되는 배열의 실제 크기보다 작은 크기를 갖는 요소의 반복 조건을 갖습니다.

모든 요소가 사용되었고 다시 사용할 필요가 없을 때 요소에 할당된 메모리는 'delete' 연산자를 사용하여 할당이 해제됩니다.

출력에서 두 번 인쇄된 값 세트를 볼 수 있습니다. 첫 번째 'for' 루프는 요소의 값을 기록하는 데 사용되었으며 다른 'for' 루프는 사용자가 명확성을 위해 이러한 값을 작성했음을 보여주는 이미 작성된 값을 인쇄하는 데 사용됩니다.

장점:

'new' 및 'delete' 연산자는 C++ 프로그래밍 언어에서 항상 우선 순위이며 널리 사용됩니다. 충분한 논의와 이해를 해보면 '신규' 오퍼레이터는 장점이 너무 많다는 사실을 알게 됩니다. 메모리 할당을 위한 'new' 연산자의 장점은 다음과 같습니다.

  • 새로운 연산자는 더 쉽게 오버로드될 수 있습니다.
  • 런타임 동안 메모리를 할당하는 동안 메모리가 충분하지 않을 때마다 프로그램이 종료되는 대신 자동 예외가 발생합니다.
  • 'new' 연산자는 우리가 할당한 메모리와 동일한 유형을 갖기 때문에 유형 캐스팅 절차를 사용하는 번거로움은 여기에 없습니다.
  • 'new' 연산자는 'new'가 필연적으로 객체의 크기를 계산할 것이기 때문에 sizeof() 연산자를 사용한다는 아이디어도 거부합니다.
  • 'new' 연산자를 사용하면 자발적으로 공간을 생성하더라도 객체를 초기화하고 선언할 수 있습니다.

C++ 배열:

우리는 배열이 무엇인지, 배열이 어떻게 선언되고 C++ 프로그램에서 구현되는지에 대해 철저히 논의할 것입니다. 배열은 하나의 변수에 여러 값을 저장하는 데 사용되는 데이터 구조이므로 많은 변수를 독립적으로 선언해야 하는 번거로움을 줄일 수 있습니다.

배열 선언:

배열을 선언하려면 먼저 변수의 유형을 정의하고 배열에 적절한 이름을 지정한 다음 대괄호를 따라 추가해야 합니다. 여기에는 특정 배열의 크기를 나타내는 요소 수가 포함됩니다.

예를 들어:

스트링 메이크업 [ 5 ] ;

이 변수는 'makeup'이라는 배열에 5개의 문자열이 포함되어 있음을 보여주기 위해 선언됩니다. 이 배열의 값을 식별하고 설명하려면 중괄호를 사용해야 합니다. 각 요소는 이중 역 쉼표로 개별적으로 묶여 있고 각각은 그 사이에 하나의 쉼표로 구분되어 있습니다.

예를 들어:

스트링 메이크업 [ 5 ] = { '마스카라' , '색조' , '립스틱' , '기반' , '첫 번째' } ;

유사하게, 다른 데이터 유형이 'int'로 간주되는 다른 배열을 생성하고 싶다면 절차는 동일할 것입니다. 변수의 데이터 유형을 아래와 같이 변경하기만 하면 됩니다.

정수 배수 [ 5 ] = { , 4 , 6 , 8 , 10 } ;

배열에 정수 값을 할당하는 동안 문자열 변수에서만 작동하는 반전된 쉼표에 정수 값을 포함해서는 안 됩니다. 따라서 결론적으로 배열은 파생 데이터 유형이 저장된 상호 관련된 데이터 항목의 모음입니다.

배열의 요소에 어떻게 액세스합니까?

배열에 포함된 모든 요소에는 배열에서 요소에 액세스하는 데 사용되는 인덱스 번호인 고유 번호가 할당됩니다. 인덱스 값은 0에서 시작하여 배열 크기보다 1이 작을 때까지입니다. 맨 처음 값의 인덱스 값은 0입니다.

예시:

배열의 변수를 초기화하는 매우 기본적이고 쉬운 예를 고려하십시오.

첫 번째 단계에서는 프로그램에 필요한 모든 라이브러리를 자동으로 추가하는 헤더 파일을 통합합니다. 네임스페이스 'std'는 디렉토리 범위를 제공합니다. 세 번째 줄에서 우리는 기본() 기능. 중괄호는 함수의 시작을 나타냅니다. 함수를 입력한 후 'digits'라는 이름의 'int' 유형 배열을 선언합니다. 크기가 4이므로 한 번에 4개의 정수 값만 포함할 수 있습니다. 배열의 각 요소에는 고유하고 다른 숫자가 별도로 할당되었습니다. 그러면 개별적으로 호출되는 각 항목과 함께 전체 배열이 표시됩니다.

위 코드에서 받은 결과입니다. 'endl' 키워드는 다른 항목을 자동으로 다음 줄로 이동합니다.

예시:

이 코드에서는 배열의 항목을 인쇄하기 위해 'for' 루프를 사용하고 있습니다.

위의 경우 필수 라이브러리를 추가하고 있습니다. 표준 네임스페이스가 추가되고 있습니다. 그만큼 기본() function은 특정 프로그램의 실행을 위한 모든 기능을 수행할 기능입니다. 다음으로 크기가 10인 'Num'이라는 int 유형 배열을 선언합니다. 이 10개의 변수 값은 'for' 루프를 사용하여 사용자로부터 가져옵니다. 이 배열을 표시하기 위해 'for' 루프가 다시 사용됩니다. 배열에 저장된 10개의 정수는 'cout' 문의 도움으로 표시됩니다.

이것은 다른 값을 가진 10개의 정수를 보여주는 위의 코드를 실행하여 얻은 출력입니다.

예시:

이 시나리오에서 우리는 학생의 평균 점수와 그가 수업에서 얻은 백분율을 알아보려고 합니다.

먼저 C++ 프로그램에 초기 지원을 제공할 라이브러리를 추가해야 합니다. 다음으로 'Score'라는 배열의 크기를 5로 지정합니다. 그런 다음 float 데이터 유형 변수 'sum'을 초기화했습니다. 각 과목의 점수는 사용자로부터 수동으로 가져옵니다. 그런 다음 'for' 루프를 사용하여 포함된 모든 주제의 평균과 백분율을 찾습니다. 합계는 배열과 'for' 루프를 사용하여 얻습니다. 그런 다음 평균 공식을 사용하여 평균을 찾습니다. 평균을 찾은 후 백분율을 얻기 위해 공식에 추가되는 백분율에 값을 전달합니다. 그런 다음 평균과 백분율이 계산되어 표시됩니다.

이것은 각 과목에 대해 개별적으로 사용자로부터 점수를 받아 평균과 백분율을 각각 계산한 최종 출력입니다.

배열 사용의 장점:

  • 배열의 항목은 할당된 색인 번호로 인해 쉽게 액세스할 수 있습니다.
  • 배열에 대한 검색 작업을 쉽게 수행할 수 있습니다.
  • 프로그래밍의 복잡성을 원하는 경우 행렬을 특성화하는 2차원 배열을 사용할 수 있습니다.
  • 데이터 유형이 유사한 여러 값을 저장하려면 배열을 쉽게 사용할 수 있습니다.

배열 사용의 단점:

  • 배열의 크기는 고정되어 있습니다.
  • 배열은 동질적이므로 단일 유형의 값만 저장됩니다.
  • 어레이는 물리적 메모리에 데이터를 개별적으로 저장합니다.
  • 배열의 경우 삽입과 삭제 과정이 쉽지 않습니다.

C++ 개체 및 클래스:

C++는 객체 지향 프로그래밍 언어이며, 이는 객체가 C++에서 중요한 역할을 한다는 것을 의미합니다. 객체에 대해 이야기하려면 먼저 객체가 무엇인지 고려해야 하므로 객체는 클래스의 모든 인스턴스입니다. C++에서 OOP의 개념을 다루기 때문에 논의할 주요 사항은 객체와 클래스입니다. 클래스는 실제로 사용자가 직접 정의하고 데이터 멤버를 캡슐화하도록 지정된 데이터 유형이며 특정 클래스의 인스턴스에만 액세스할 수 있는 기능이 생성됩니다. 데이터 멤버는 클래스 내부에 정의된 변수입니다.



다시 말해 클래스는 데이터 멤버의 정의 및 선언과 해당 데이터 멤버에 할당된 기능을 담당하는 개요 또는 디자인입니다. 클래스에서 선언된 각 개체는 클래스에서 보여 주는 모든 특성 또는 기능을 공유할 수 있습니다.

새라는 클래스가 있다고 가정해 보겠습니다. 이제 처음에는 모든 새가 날 수 있고 날개가 있습니다. 따라서 비행은 이 새들이 취하는 행동이며 날개는 몸의 일부 또는 기본 특성입니다.







클래스 정의:

클래스를 정의하려면 구문을 확인하고 클래스에 따라 재설정해야 합니다. 'class'라는 키워드는 클래스를 정의하는 데 사용되며 다른 모든 데이터 멤버와 함수는 중괄호 안에 정의되고 클래스 정의가 뒤따릅니다.





클래스 이름OfClass

{

액세스 지정자 :

데이터 멤버 ;

데이터 멤버 함수 ( ) ;

} ;

객체 선언:

클래스를 정의한 직후 클래스에서 지정한 함수에 액세스하고 정의할 개체를 만들어야 합니다. 이를 위해 클래스 이름을 작성한 다음 선언할 객체 이름을 작성해야 합니다.



데이터 멤버 액세스:

함수와 데이터 멤버는 간단한 점 '.' 연산자를 사용하여 액세스합니다. 공개 데이터 멤버도 이 연산자로 액세스하지만 비공개 데이터 멤버의 경우 직접 액세스할 수 없습니다. 데이터 구성원의 액세스는 개인, 공개 또는 보호되는 액세스 수정자가 제공한 액세스 제어에 따라 다릅니다. 다음은 간단한 클래스, 데이터 멤버 및 함수를 선언하는 방법을 보여주는 시나리오입니다.











예시:

이 예제에서는 몇 가지 함수를 정의하고 객체의 도움으로 클래스 함수와 데이터 멤버에 액세스할 것입니다.



첫 번째 단계에서는 라이브러리를 통합한 후 지원 디렉토리를 포함해야 합니다. 클래스는 호출하기 전에 명시적으로 정의됩니다. 기본() 기능. 이 클래스를 '차량'이라고 합니다. 데이터 멤버는 '차량의 이름'과 해당 차량의 'id'로 각각 문자열이 있는 해당 차량의 번호판과 int 데이터 유형입니다. 이 두 데이터 멤버에 대해 두 함수가 선언됩니다. 그만큼 ID() 기능은 차량의 ID를 표시합니다. 클래스의 데이터 멤버는 공용이므로 클래스 외부에서도 액세스할 수 있습니다. 그러므로 우리는 부르고 있다 이름() 클래스 외부에서 함수를 호출한 다음 사용자로부터 'VehicleName' 값을 받아 다음 단계에서 인쇄합니다. 에서 기본() 함수, 우리는 클래스에서 데이터 멤버와 함수에 액세스하는 데 도움이 될 필수 클래스의 개체를 선언하고 있습니다. 또한 사용자가 차량 이름 값을 제공하지 않는 경우에만 차량 이름과 ID 값을 초기화합니다.

이것은 사용자가 자신의 차량 이름을 입력할 때 수신되는 출력이며 번호판은 할당된 정적 값입니다.

멤버 함수의 정의에 대해 이야기할 때 클래스 내부에서 함수를 정의하는 것이 항상 필수는 아니라는 점을 이해해야 합니다. 위의 예에서 볼 수 있듯이 데이터 멤버가 공개적으로 선언되고 이것은 이름과 함께 '::'로 표시된 범위 확인 연산자의 도움으로 수행되기 때문에 클래스 외부에서 클래스의 기능을 정의하고 있습니다. 클래스와 함수의 이름.

C++ 생성자와 소멸자:

예제를 통해 이 주제에 대해 자세히 살펴보겠습니다. C++ 프로그래밍에서 객체의 삭제와 생성은 매우 중요합니다. 이를 위해 클래스에 대한 인스턴스를 생성할 때마다 몇 가지 경우에 생성자 메서드를 자동으로 호출합니다.

생성자:

이름에서 알 수 있듯이 생성자는 무언가의 생성을 지정하는 'construct'라는 단어에서 파생됩니다. 따라서 생성자는 클래스 이름을 공유하는 새로 생성된 클래스의 파생 함수로 정의됩니다. 그리고 클래스에 포함된 객체의 초기화에 활용합니다. 또한 생성자 자체에 대한 반환 값이 없으므로 반환 유형도 void가 아닙니다. 인수를 수락해야 하는 것은 아니지만 필요한 경우 인수를 추가할 수 있습니다. 생성자는 클래스의 개체에 메모리를 할당하고 멤버 변수의 초기 값을 설정하는 데 유용합니다. 객체가 초기화되면 초기 값을 생성자 함수에 인수 형식으로 전달할 수 있습니다.

통사론:

NameOfTheClass ( )
{
//생성자의 몸체
}

생성자의 유형:

매개변수화된 생성자:

앞에서 설명한 것처럼 생성자에는 매개변수가 없지만 원하는 매개변수를 추가할 수 있습니다. 이것은 생성되는 동안 객체의 값을 초기화합니다. 이 개념을 더 잘 이해하려면 다음 예를 고려하십시오.

예시:

이 경우 클래스의 생성자를 만들고 매개변수를 선언합니다.

첫 번째 단계에서 헤더 파일을 포함합니다. 네임스페이스를 사용하는 다음 단계는 프로그램에 디렉토리를 지원하는 것입니다. 'digits'라는 클래스가 선언된 곳에서 먼저 변수가 프로그램 전체에서 액세스할 수 있도록 공개적으로 초기화됩니다. 데이터 유형이 정수인 'dig1'이라는 변수가 선언되었습니다. 다음으로, 클래스 이름과 유사한 이름을 가진 생성자를 선언했습니다. 이 생성자는 'n'으로 전달된 정수 변수를 가지며 클래스 변수 'dig1'은 n과 동일하게 설정됩니다. 에서 기본() 프로그램의 기능에 따라 'digits' 클래스에 대한 세 개의 객체가 생성되고 임의의 값이 할당됩니다. 그런 다음 이러한 개체를 사용하여 동일한 값이 자동으로 할당된 클래스 변수를 호출합니다.

정수 값은 화면에 출력으로 표시됩니다.

복사 생성자:

객체를 인수로 간주하고 한 객체의 데이터 멤버 값을 다른 객체에 복제하는 생성자 유형입니다. 따라서 이러한 생성자는 한 개체를 다른 개체에서 선언하고 초기화하는 데 사용됩니다. 이 프로세스를 복사 초기화라고 합니다.

예시:

이 경우 복사 생성자가 선언됩니다.

먼저 라이브러리와 디렉토리를 통합합니다. 정수가 'e'와 'o'로 초기화되는 'New'라는 클래스가 선언되었습니다. 생성자는 두 변수에 값이 할당되고 이러한 변수가 클래스에서 선언되는 경우 공개됩니다. 그런 다음 이러한 값은 기본() 반환 유형으로 'int'를 사용하는 함수. 그만큼 표시하다() 함수는 화면에 숫자가 표시되는 이후에 호출되고 정의됩니다. 내부 기본() 함수, 개체가 만들어지고 이러한 할당된 개체가 임의의 값으로 초기화된 다음 표시하다() 방법이 활용된다.

복사 생성자를 사용하여 받은 출력은 아래와 같습니다.

파괴자:

이름이 정의한 것처럼 소멸자는 생성자가 생성한 객체를 파괴하는 데 사용됩니다. 생성자와 비교하여 소멸자는 클래스와 이름이 동일하지만 뒤에 물결표(~)가 추가됩니다.

통사론:

~신규 ( )
{
}

소멸자는 인수를 취하지 않으며 반환 값도 없습니다. 컴파일러는 더 이상 액세스할 수 없는 정리 저장소에 대해 프로그램 종료를 암시적으로 호소합니다.

예시:

이 시나리오에서는 객체를 삭제하기 위해 소멸자를 사용합니다.

여기에서 '신발' 클래스가 만들어집니다. 클래스와 이름이 비슷한 생성자가 생성됩니다. 생성자에서 개체가 생성된 위치에 메시지가 표시됩니다. 생성자 다음에 생성자로 생성된 객체를 삭제하는 소멸자가 생성됩니다. 에서 기본() 함수에서 ''라는 이름의 포인터 객체가 생성되고 이 객체를 삭제하기 위해 'delete' 키워드가 활용됩니다.

이것은 소멸자가 생성된 객체를 지우고 파괴하는 프로그램에서 받은 출력입니다.

생성자와 소멸자의 차이점:

생성자 구축함
클래스의 인스턴스를 만듭니다. 클래스의 인스턴스를 파괴합니다.
클래스 이름을 따라 인수가 있습니다. 인수나 매개변수가 없습니다.
객체가 생성될 때 호출됩니다. 객체가 파괴될 때 호출됩니다.
메모리를 개체에 할당합니다. 개체의 메모리 할당을 해제합니다.
과부하가 걸릴 수 있습니다. 오버로드할 수 없습니다.

C++ 상속:

이제 C++ 상속과 그 범위에 대해 알아보겠습니다.

상속은 새로운 클래스가 생성되거나 기존 클래스에서 파생되는 방법입니다. 현재 클래스를 '기본 클래스' 또는 '부모 클래스'라고 하며 새로 생성되는 클래스를 '파생 클래스'라고 합니다. 자식 클래스가 부모 클래스에서 상속된다는 것은 자식이 부모 클래스의 모든 속성을 소유한다는 것을 의미합니다.

상속은 (이다) 관계를 나타냅니다. 두 클래스 간에 'is-'가 사용되면 모든 관계를 상속이라고 합니다.

예를 들어:

  • 앵무새는 새입니다.
  • 컴퓨터는 기계입니다.

통사론:

C++ 프로그래밍에서는 다음과 같이 상속을 사용하거나 작성합니다.

수업 < 파생 - 수업 >: < 입장 - 지정자 >< 베이스 - 수업 >

C++ 상속 모드:

상속에는 클래스를 상속하는 3가지 모드가 포함됩니다.

  • 공공의: 이 모드에서 자식 클래스가 선언되면 부모 클래스의 멤버는 부모 클래스와 마찬가지로 자식 클래스에 상속됩니다.
  • 보호: 나 이 모드에서는 부모 클래스의 public 멤버가 자식 클래스의 보호된 멤버가 됩니다.
  • 사적인 : 이 모드에서는 부모 클래스의 모든 멤버가 자식 클래스에서 private가 됩니다.

C++ 상속 유형:

다음은 C++ 상속 유형입니다.

1. 단일 상속:

이러한 종류의 상속을 통해 클래스는 하나의 기본 클래스에서 시작됩니다.

통사론:

클래스 M
{
신체
} ;
클래스 N : 공개 엠
{
신체
} ;

2. 다중 상속:

이러한 종류의 상속에서 클래스는 다른 기본 클래스에서 파생될 수 있습니다.

통사론:

클래스 M

{

신체

} ;

클래스 N

{

신체

} ;

클래스 O : 공개 엠 , 공개 N

{

신체

} ;

3. 다단계 상속:

자식 클래스는 이러한 형태의 상속에서 다른 자식 클래스의 자손입니다.

통사론:

클래스 M

{

신체

} ;

클래스 N : 공개 엠

{

신체

} ;

클래스 O : 공개 N

{

신체

} ;

4. 계층적 상속:

이 상속 방법에서는 하나의 기본 클래스에서 여러 하위 클래스가 생성됩니다.

통사론:

클래스 M

{

신체

} ;

클래스 N : 공개 엠

{

신체

} ;

클래스 O : 공개 엠

{

} ;

5. 하이브리드 상속:

이러한 종류의 상속에서는 다중 상속이 결합됩니다.

통사론:

클래스 M

{

신체

} ;

클래스 N : 공개 엠

{

신체

} ;

클래스 O

{

신체

} ;

클래스 P : 공개 N , 공개 O

{

신체

} ;

예시:

우리는 C++ 프로그래밍에서 다중 상속의 개념을 보여주기 위해 코드를 실행할 것입니다.

표준 입출력 라이브러리로 시작한 다음 기본 클래스 이름 'Bird'를 지정하고 해당 멤버가 액세스할 수 있도록 공개했습니다. 그런 다음 기본 클래스인 'Reptile'이 있고 이를 공개하기도 했습니다. 그런 다음 출력을 인쇄할 'cout'가 있습니다. 그 후, 우리는 자식 클래스 '펭귄'을 만들었습니다. 에서 기본() 함수에서 우리는 펭귄 클래스의 객체를 'p1'으로 만들었습니다. 먼저 'Bird' 클래스가 실행된 다음 'Reptile' 클래스가 실행됩니다.

C++에서 코드를 실행한 후 기본 클래스 'Bird' 및 'Reptile'의 출력 문을 얻습니다. 펭귄은 파충류인 동시에 새이기 때문에 '펭귄' 클래스가 '새'와 '파충류'라는 기본 클래스에서 파생되었음을 의미합니다. 날아갈 수도 있고 기어갈 수도 있습니다. 따라서 다중 상속은 하나의 자식 클래스가 여러 기본 클래스에서 파생될 수 있음을 증명했습니다.

예시:

여기서는 Multilevel Inheritance를 활용하는 방법을 보여주는 프로그램을 실행합니다.

우리는 입출력 스트림을 사용하여 프로그램을 시작했습니다. 그런 다음 공개로 설정된 부모 클래스 'M'을 선언했습니다. 우리는 전화했다 표시하다() 함수 및 'cout' 명령을 사용하여 명령문을 표시합니다. 다음으로 부모 클래스 'M'에서 파생된 자식 클래스 'N'을 만들었습니다. 자식 클래스 'N'에서 파생된 새 자식 클래스 'O'가 있고 파생 클래스의 본문은 모두 비어 있습니다. 결국, 우리는 호출 기본() 클래스 'O'의 객체를 초기화해야 하는 함수입니다. 그만큼 표시하다() 객체의 기능은 결과를 보여주기 위해 활용됩니다.

이 그림에서 우리는 부모 클래스인 클래스 'M'의 결과를 가지고 있습니다. 표시하다() 그 안에 기능. 따라서 클래스 'N'은 부모 클래스 'M'에서 파생되고 클래스 'O'는 다단계 상속을 참조하는 부모 클래스 'N'에서 파생됩니다.

C++ 다형성:

'다형성'이라는 용어는 두 단어의 모음을 나타냅니다. '폴리' 그리고 ' 형태' . 'Poly'는 '많은'을 의미하고 'morphism'은 '형태'를 의미합니다. 다형성은 개체가 다른 조건에서 다르게 동작할 수 있음을 의미합니다. 프로그래머가 코드를 재사용하고 확장할 수 있습니다. 동일한 코드라도 조건에 따라 다르게 작동합니다. 개체의 제정은 런타임에 사용할 수 있습니다.

다형성의 범주:

다형성은 주로 두 가지 방법으로 발생합니다.

  1. 컴파일 시간 다형성
  2. 런타임 다형성

설명하겠습니다.

6. 컴파일 시간 다형성:

이 시간 동안 입력된 프로그램은 실행 가능한 프로그램으로 변경됩니다. 코드를 배포하기 전에 오류가 감지됩니다. 크게 두 가지 범주가 있습니다.

  • 함수 오버로딩
  • 연산자 오버로딩

이 두 범주를 어떻게 활용하는지 살펴보겠습니다.

7. 함수 오버로딩:

함수가 다른 작업을 수행할 수 있음을 의미합니다. 함수는 이름이 비슷하지만 인수가 다른 여러 함수가 있는 경우 오버로드된 것으로 알려져 있습니다.

먼저 라이브러리와 표준 네임스페이스를 사용합니다. 그런 다음 사용자 정의 클래스 'Add'를 선언합니다. 클래스 내에서 두 개의 매개변수가 있는 함수 ADD()를 public으로 정의합니다. 다시, 같은 이름을 가진 클래스 본문 안에 새 함수를 선언하지만 이 함수에는 매개변수가 없습니다. 여기에서 세 개의 문자열을 초기화합니다. 처음 두 문자열에는 값이 있고 마지막 문자열은 처음 두 문자열을 연결하는 데 사용됩니다. 결과를 출력하기 위해 'cout' 명령을 사용합니다. 다음으로 호출합니다. 기본() 클래스 외부의 메소드 필요한 클래스 'Add'의 객체를 생성합니다. 이제 두 개의 매개변수를 사용하여 첫 번째 함수를 호출한 다음 두 번째 함수도 호출합니다. 마지막 단계에서 'return 0' 문을 포함하여 프로그램을 종료합니다.

연산자 과부하:

연산자의 여러 기능을 정의하는 프로세스를 연산자 오버로딩이라고 합니다.

위의 예에는 헤더 파일이 포함되어 있습니다. 그런 다음 표준 네임스페이스를 활용했습니다. 우리는 '정수' 클래스를 정의합니다. 이 클래스 내에서 정수를 클래스의 private 멤버로 지정합니다. 다음으로 Parameterized 생성자를 public 멤버로 선언하고 그 안의 정수 값을 초기화합니다. 오버로딩 접두사 연산자를 사용하여 생성자를 정의합니다. 이 생성자 내에서 접두사 연산을 수행합니다. 또한 'cout' 문을 사용하여 증분 값을 표시하는 함수를 만듭니다. 한편, 우리는 기본() 기능. 여기에서 두 개의 클래스 개체를 만듭니다. 첫 번째 개체는 정수 값을 전달합니다. 그런 다음 'cout' 문을 사용하여 'Before increment is the value is' 줄을 인쇄합니다. 다음으로, 우리는 표시하다() 첫 번째 개체에 대한 함수입니다. 두 번째 개체는 사전 증가 연산자를 사용합니다. 'cout' 명령을 사용하여 'After pre-increment value is' 라인을 표시합니다. 그런 다음, 우리는 표시하다() 두 번째 개체에 대한 기능입니다.

8. 런타임 다형성:

코드가 실행되는 시간 범위입니다. 코드 사용 후 오류를 감지할 수 있습니다.

함수 재정의:

파생 클래스가 기본 클래스 멤버 함수 중 하나로 유사한 함수 정의를 사용할 때 발생합니다.

첫 번째 줄에서는 라이브러리를 통합하여 입력 및 출력 작업을 실행합니다. 또한 표준 네임스페이스를 추가합니다. 다음 줄에서는 부모 클래스 'Man'을 선언합니다. 클래스 내부에서 두 개의 매개변수가 있는 함수를 public으로 정의합니다. 그런 다음 'cout' 문을 사용하여 'Walking'이라는 텍스트를 표시합니다. 클래스 외부에서 상위 클래스에서 파생된 'Animal' 하위 클래스를 만듭니다. 여기에서 이전에 상위 클래스에서 선언된 것과 유사한 이름을 가진 함수를 만듭니다. 그런 다음 'cout' 문을 사용하여 텍스트 'Eating'을 표시합니다. 우리는 사용 기본() 기능. 한편, 클래스 객체 'm'을 생성합니다. 그런 다음 부모 클래스의 함수와 자식 클래스의 함수를 호출합니다. 'return 0' 명령을 사용합니다.

C++ 문자열:

이제 C++에서 String을 선언하고 초기화하는 방법을 알아보겠습니다. 문자열은 프로그램에 문자 그룹을 저장하는 데 사용됩니다. 프로그램에 알파벳 값, 숫자 및 특수 유형 기호를 저장합니다. C++ 프로그램에서 문자를 배열로 예약했습니다. 배열은 C++ 프로그래밍에서 문자 모음 또는 조합을 예약하는 데 사용됩니다. 널 문자로 알려진 특수 기호는 배열을 종료하는 데 사용됩니다. 이스케이프 시퀀스(\0)로 표시되며 문자열의 끝을 지정하는 데 사용됩니다.

'cin' 명령을 사용하여 문자열을 가져옵니다.

공백 없이 문자열 변수를 입력할 때 사용합니다. 주어진 인스턴스에서 'cin' 명령을 사용하여 사용자의 이름을 가져오는 C++ 프로그램을 구현합니다.

첫 번째 단계에서는 라이브러리를 활용합니다. 한편, 표준 네임스페이스를 포함했습니다. 다음으로 선언합니다. 기본() 기능. 본문 내에서 문자 유형 문자열을 초기화합니다. 기본() 기능. 그런 다음 'cout' 문을 사용하여 'Enter your name'을 인쇄합니다. 'cin' 명령을 사용하여 사용자에게 문자열을 요청합니다. 'cout' 명령은 사용자가 작성할 이름을 인쇄하는 데 적용됩니다. 프로그램을 종료하기 위해 return 0 문이 추가됩니다.

사용자는 'Ahmed Chaudry'라는 이름을 입력합니다. 그러나 'cin' 명령은 공백이 있는 문자열을 저장할 수 없기 때문에 완전한 'Ahmed Chaudry'가 아닌 'Ahmed'만 출력으로 얻습니다. 공백 앞에 값만 저장합니다.

cin.get() 함수를 사용하여 문자열을 가져옵니다.

그만큼 가져 오기() cin 명령의 기능은 공백을 포함할 수 있는 키보드에서 문자열을 가져오는 데 사용됩니다.

위의 예에는 입력 및 출력 작업을 수행하기 위한 라이브러리가 포함되어 있습니다. 그런 다음 표준 네임스페이스를 사용했습니다. 그만큼 기본() 함수가 호출됩니다. 그런 다음 's'라는 문자열을 초기화합니다. 다음 단계에서는 'cout' 명령을 사용하여 '문자열 입력'이라는 문장을 표시합니다. 그만큼 cin.get() 사용자로부터 문자열을 가져오기 위해 적용됩니다. 를 사용하여 cin.get() 함수에서 문자열 값을 전달하고 문자열의 크기를 매개변수로 지정합니다. 'cout' 명령은 프로그램의 출력을 표시하기 위해 다시 사용됩니다. 마지막에 return 0을 추가합니다.

사용자가 'My name is Ali'라는 문자열을 입력합니다. cin.get() 함수가 공백을 포함하는 문자열을 수락하기 때문에 완전한 문자열 'My name is Ali'를 결과로 얻습니다.

2D(2차원) 문자열 배열 사용:

이 경우 문자열의 2D 배열을 사용하여 사용자로부터 입력(3개 도시의 이름)을 받습니다.

먼저 헤더 파일 과 표준 네임스페이스를 통합합니다. 우리는 호출 기본() 기능. 그런 다음 3개의 행과 15개의 열로 구성된 2차원 문자 배열을 초기화합니다. 다음 단계에서 for 루프는 널 문자가 식별될 때까지 필요한 문자열을 반복하기 위해 변수 'i'를 계산하는 데 사용됩니다. 'for' 루프의 본문 내부에서 'cout' 명령을 사용하여 'Enter city name' 줄을 표시합니다. 그런 다음 'cin' 문을 사용하여 도시 이름을 가져옵니다. 또 다른 'for' 루프와 'cout' 문을 사용하여 루프가 종료될 때까지 도시 이름을 순서대로 표시합니다. 다음으로 'return 0' 명령이 사용됩니다.

여기에서 사용자는 세 개의 다른 도시 이름을 입력합니다. 프로그램은 행 인덱스를 사용하여 세 개의 문자열 값을 가져옵니다. 모든 값은 자체 행에 유지됩니다. 첫 번째 문자열은 첫 번째 행에 저장됩니다. 각 문자열 값은 행 인덱스를 사용하여 동일한 방식으로 표시됩니다.

C++ 표준 라이브러리:

C++ 라이브러리는 표준 헤더 파일을 항상 정의하고 선언하는 많은 함수, 클래스, 상수 및 거의 모든 관련 항목이 하나의 적절한 집합으로 묶인 클러스터 또는 그룹입니다. 이러한 구현에는 이라는 C++ 표준에서 필요하지 않은 두 개의 새 헤더 파일이 포함됩니다. 컴파일러의 요구 사항에 따라 긴 필수 헤더 파일 목록이 있습니다. 헤더 파일에는 C++ 표준 라이브러리의 모든 콘텐츠가 포함된 헤더 목록이 포함되어 있으며, 여기에는 STL(Stand Library Template)에 대한 특정 헤더 파일이 포함됩니다.

표준 라이브러리는 프로그래밍하는 동안 명령을 다시 작성하는 번거로움을 없애줍니다. 여기에는 많은 기능에 대한 코드가 저장된 많은 라이브러리가 있습니다. 이러한 라이브러리를 잘 사용하려면 헤더 파일을 사용하여 라이브러리를 연결해야 합니다. 입력 또는 출력 라이브러리를 가져올 때 이는 해당 라이브러리 내부에 저장된 모든 코드를 가져옴을 의미하며 이것이 필요하지 않을 수도 있는 모든 기본 코드를 숨겨 그 안에 포함된 기능을 사용할 수 있는 방법입니다. 보다.

C++ 표준 라이브러리는 다음 두 가지 유형을 지원합니다.

  • C++ ISO 표준에서 설명하는 모든 필수 표준 라이브러리 헤더 파일을 프로비저닝하는 호스팅된 구현입니다.
  • 표준 라이브러리에서 헤더 파일의 일부만 필요로 하는 독립 실행형 구현입니다. 적절한 하위 집합은 다음과 같습니다.
(적어도 선언

Atomic_signed_lock_free 및 atomic-unsigned_lock_free)

<범위>
<비트> (최소한 atexit,abort, at_quick_exit, exit, quick_exit 선언) <비율>
<예외> <튜플>
<한계> <기능성> <유형 정보>
<비교> <이니셜라이저_목록> <출처_위치>
<컨셉> <반복자> <유형_특성>
<코루틴> <한계> <유틸리티>
<신규>
<메모리> <버전>

, 과 같은 몇 가지 헤더 파일이 지난 11 C++ 출시 이후 개탄되었습니다.

호스팅된 구현과 독립 실행형 구현 간의 차이점은 다음과 같습니다.

  • 호스팅된 구현에서는 주요 기능인 전역 기능을 사용해야 합니다. 독립 구현에서 사용자는 자체적으로 시작 및 종료 기능을 선언하고 정의할 수 있습니다.
  • 호스팅 구현에는 일치하는 시간에 강제 실행되는 하나의 스레드가 있습니다. 반면 독립 구현에서는 구현자가 라이브러리에서 동시 스레드 지원이 필요한지 여부를 스스로 결정합니다.

유형:

독립형 및 호스트형 모두 C++에서 지원됩니다. 헤더 파일은 다음 두 가지로 나뉩니다.

  • 아이오스트림 부품
  • C++ STL 부품(표준 라이브러리)

C++에서 실행을 위한 프로그램을 작성할 때마다 우리는 항상 STL 내부에 이미 구현된 함수를 호출합니다. 이러한 알려진 기능은 효율적으로 식별된 연산자를 사용하여 입력을 받고 출력을 표시합니다.

역사를 고려할 때 STL은 처음에 표준 템플릿 라이브러리라고 불렸습니다. 그런 다음 STL 라이브러리의 일부를 현재 사용되는 C++의 표준 라이브러리에서 표준화했습니다. 여기에는 ISO C++ 런타임 라이브러리와 다른 중요한 기능을 포함하는 Boost 라이브러리의 몇 가지 조각이 포함됩니다. 때때로 STL은 컨테이너를 나타내거나 더 자주 C++ 표준 라이브러리의 알고리즘을 나타냅니다. 이제 이 STL 또는 표준 템플릿 라이브러리는 알려진 C++ 표준 라이브러리에 대해 완전히 이야기합니다.

std 네임스페이스 및 헤더 파일:

함수 또는 변수의 모든 선언은 표준 라이브러리 내에서 균등하게 배포된 헤더 파일의 도움으로 수행됩니다. 헤더 파일을 포함하지 않으면 선언이 발생하지 않습니다.

누군가가 목록과 문자열을 사용하고 있다고 가정하고 다음 헤더 파일을 추가해야 합니다.

#include <문자열>

#include <목록>

이 꺾쇠 괄호 '<>'는 정의되고 포함되는 디렉토리에서 이 특정 헤더 파일을 조회해야 함을 나타냅니다. 필요하거나 원하는 경우 수행되는 이 라이브러리에 '.h' 확장자를 추가할 수도 있습니다. '.h' 라이브러리를 제외하면 이 헤더 파일이 C 라이브러리에 속한다는 표시처럼 파일 이름 시작 바로 앞에 'c'를 추가해야 합니다. 예를 들어, (#include 또는 #include )를 작성할 수 있습니다.

네임스페이스에 대해 말하면 전체 C++ 표준 라이브러리는 std로 표시된 이 네임스페이스 안에 있습니다. 이것이 표준화된 라이브러리 이름이 사용자에 의해 유능하게 정의되어야 하는 이유입니다. 예를 들어:

표준 :: 쫓다 << '이것은 지나갈 것이다. !/ N' ;

C++ 벡터:

C++에서 데이터 또는 값을 저장하는 방법에는 여러 가지가 있습니다. 그러나 지금은 C++ 언어로 프로그램을 작성하면서 값을 저장하는 가장 쉽고 유연한 방법을 찾고 있습니다. 따라서 벡터는 요소의 삽입과 공제에 따라 실행 시점에 크기가 달라지는 일련의 패턴으로 적절하게 배열된 컨테이너입니다. 이것은 프로그래머가 프로그램을 실행하는 동안 원하는 대로 벡터의 크기를 변경할 수 있음을 의미합니다. 포함된 요소에 대해 통신 가능한 저장 위치도 가지고 있다는 점에서 어레이와 유사합니다. 벡터 내부에 존재하는 값이나 요소의 수를 확인하려면 ' std::count' 기능. 벡터는 C++의 표준 템플릿 라이브러리에 포함되어 있으므로 먼저 포함해야 하는 명확한 헤더 파일이 있습니다.

#include <벡터>

선언:

벡터 선언은 아래와 같습니다.

표준 :: 벡터 < DT > 벡터 이름 ;

여기서 vector는 사용된 키워드이고 DT는 int, float, char 또는 기타 관련 데이터 유형으로 대체될 수 있는 벡터의 데이터 유형을 표시합니다. 위의 선언은 다음과 같이 다시 작성할 수 있습니다.

벡터 < 뜨다 > 백분율 ;

실행 중에 크기가 증가하거나 감소할 수 있으므로 벡터의 크기는 지정되지 않습니다.

벡터 초기화:

벡터 초기화의 경우 C++에는 두 가지 이상의 방법이 있습니다.

기술 번호 1:

벡터 < 정수 > v1 = { 71 , 98 , 3. 4 , 65 } ;

벡터 < 정수 > v2 = { 71 , 98 , 3. 4 , 65 } ;

이 절차에서는 두 벡터에 대한 값을 직접 할당합니다. 둘 다에 할당된 값은 정확히 유사합니다.

기술 번호 2:

벡터 < 정수 > v3 ( , 열 다섯 ) ;

이 초기화 프로세스에서 3은 벡터의 크기를 나타내고 15는 벡터에 저장된 데이터 또는 값입니다. 주어진 크기가 3이고 값 15를 저장하는 데이터 유형 'int'의 벡터가 생성되며 이는 벡터 'v3'이 다음을 저장함을 의미합니다.

벡터 < 정수 > v3 = { 열 다섯 , 열 다섯 , 열 다섯 } ;

주요 작업:

벡터 클래스 내부의 벡터에 대해 구현할 주요 작업은 다음과 같습니다.

  • 값 추가
  • 값 액세스
  • 값 변경
  • 값 삭제

추가 및 삭제:

벡터 내부의 요소 추가 및 삭제는 체계적으로 수행됩니다. 대부분의 경우 요소는 벡터 컨테이너의 끝 부분에 삽입되지만 원하는 위치에 값을 추가하여 결국 다른 요소를 새 위치로 이동할 수도 있습니다. 반면 삭제 시 마지막 위치에서 값을 삭제하면 자동으로 컨테이너의 크기가 줄어듭니다. 그러나 컨테이너 내부의 값이 특정 위치에서 임의로 삭제되면 새 위치가 자동으로 다른 값에 할당됩니다.

사용된 기능:

벡터 내부에 저장된 값을 변경하거나 변경하기 위해 수정자라고 하는 미리 정의된 함수가 있습니다. 그것들은 다음과 같습니다:

  • Insert(): 특정 위치의 벡터 컨테이너 내부에 값을 추가하는 데 사용됩니다.
  • Erase(): 특정 위치에 있는 벡터 컨테이너 내부의 값을 제거하거나 삭제할 때 사용합니다.
  • Swap(): 동일한 데이터 유형에 속하는 벡터 컨테이너 내부 값의 스왑에 사용됩니다.
  • Assign(): 벡터 컨테이너 내부에 이전에 저장된 값에 새 값을 할당하는 데 사용됩니다.
  • Begin(): 첫 번째 요소 내 벡터의 첫 번째 값을 지정하는 루프 내에서 반복자를 반환하는 데 사용됩니다.
  • Clear(): 벡터 컨테이너에 저장된 모든 값을 삭제할 때 사용합니다.
  • Push_back(): 벡터 컨테이너 종료 시 값을 추가할 때 사용합니다.
  • Pop_back(): 벡터 컨테이너 종료 시 값을 삭제할 때 사용합니다.

예시:

이 예에서 수정자는 벡터를 따라 사용됩니다.

먼저 헤더 파일을 포함합니다. 이후 std 네임스페이스를 통합하여 클래스를 한 번에 추가합니다. 전체 프로그램의 논리를 작성하기 위해 'digits'라는 벡터가 초기화되는 main() 함수를 호출합니다. 이 벡터의 할당은 'digits'가 6과 24의 값을 제공한 다음 단계에서 수행됩니다. 이는 6개의 요소가 벡터 컨테이너 내부에 저장되고 각각의 값은 24임을 의미합니다. 그런 다음 이 값은 'cout'을 사용하여 표시됩니다. ' 명령. 컨테이너 내부에 요소를 추가하기 위해 수정자 함수 push_back()에 'for' 루프가 사용됩니다. 이제 마지막 숫자에 3 값이 추가됩니다. 벡터 컨테이너의 크기 기록을 유지하기 위해 변수 'x'를 초기화합니다. 이제 마지막 요소의 값이 표시되고 pop_back() 함수는 컨테이너 내부에 저장된 숫자 '3'을 삭제합니다. 모든 요소를 ​​표시하기 위해 'for' 루프를 다시 사용합니다. 끼워 넣다() 값을 삽입할 수식어입니다. 여기서 4는 벡터 컨테이너의 시작 부분에 삽입되어 화면에 표시됩니다. 그만큼 분명한() 그런 다음 수정자는 컨테이너 내부에 저장된 모든 값을 지우거나 삭제합니다. 벡터의 크기는 지우기가 완료된 후 표시됩니다.

출력은 아래와 같습니다.

C++ 파일 입력 출력:

파일은 상호 관련된 데이터의 집합입니다. C++에서 파일은 시간순으로 함께 수집된 바이트 시퀀스입니다. 대부분의 파일은 디스크 내부에 존재합니다. 그러나 자기 테이프, 프린터 및 통신 회선과 같은 하드웨어 장치도 파일에 포함됩니다.

파일의 입력 및 출력은 세 가지 주요 클래스로 특징지어집니다.

  • 'istream' 클래스는 입력을 받는 데 사용됩니다.
  • 'ostream' 클래스는 출력을 표시하는 데 사용됩니다.
  • 입출력은 'iostream' 클래스를 사용합니다.

파일은 C++에서 스트림으로 처리됩니다. 파일 또는 파일에서 입력 및 출력을 수행할 때 사용되는 클래스는 다음과 같습니다.

  • 오프스트림: 파일에 쓰는 데 사용되는 스트림 클래스입니다.
  • 이프스트림: 파일에서 콘텐츠를 읽는 데 사용되는 스트림 클래스입니다.
  • 개울: 파일이나 파일에서 읽고 쓰는 데 사용되는 스트림 클래스입니다.

'istream' 및 'ostream' 클래스는 위에서 언급한 모든 클래스의 조상입니다. 파일 스트림은 'cin' 및 'cout' 명령만큼 사용하기 쉽고 이러한 파일 스트림을 다른 파일에 연결한다는 차이점만 있습니다. 'fstream' 클래스에 대해 간략하게 공부하는 예를 살펴보겠습니다.

예시:

이 경우 파일에 데이터를 씁니다.

우리는 첫 번째 단계에서 입력 및 출력 스트림을 통합하고 있습니다. 그런 다음 파일에서 데이터를 쓰고 읽을 것이기 때문에 헤더 파일 이 추가됩니다. 그런 다음 네임스페이스의 도움으로 클래스가 호출됩니다. 그만큼 기본() 함수는 데이터를 파일에 쓰는 'ofstream'이 사용되는 프로그램 본문에 대해 호출되며 파일은 New_File로 생성됩니다. 다음 단계에서는 다음을 활용하여 'example'이라는 텍스트 파일을 엽니다. 열려 있는( ) 방법. 파일에 각괄호를 사용하여 텍스트를 작성하고 있습니다. 모든 파일은 일단 처리되면 닫힙니다. 이것이 파일이 의 도움으로 닫힌 이유입니다. 닫다() 기능.

위와 같이 '예시' 파일을 PC에서 열어서 이 텍스트 파일에 파일에 적힌 내용을 각인합니다.

파일 열기:

파일이 열리면 스트림으로 표시됩니다. New_File이 이전 예제에서 생성된 것처럼 파일에 대한 객체가 생성됩니다. 스트림에서 수행된 모든 입력 및 출력 작업은 파일 자체에 자동으로 적용됩니다. 파일을 열 때 open() 함수는 다음과 같이 사용됩니다.

열려 있는 ( 파일 이름 , 방법 ) ;

여기서 모드는 강제적이지 않습니다.

파일 닫기:

모든 입력 및 출력 작업이 완료되면 편집을 위해 열린 파일을 닫아야 합니다. 우리는 고용해야합니다 닫다() 이 상황에서 기능.

새로운 파일. 닫다 ( ) ;

이 작업이 완료되면 파일을 사용할 수 없게 됩니다. 어떤 상황에서 객체가 파괴되면 파일에 연결되더라도 소멸자는 자발적으로 close() 함수를 호출합니다.

텍스트 파일:

텍스트 파일은 텍스트를 저장하는 데 사용됩니다. 따라서 텍스트가 입력되거나 표시되는 경우 일부 형식 변경이 있어야 합니다. 텍스트 파일 내부의 쓰기 작업은 'cout' 명령을 수행하는 것과 동일합니다.

예시:

이 시나리오에서는 이전 그림에서 이미 만들어진 텍스트 파일에 데이터를 쓰고 있습니다.

여기서는 New_File() 함수를 사용하여 'example'이라는 파일에 데이터를 작성하고 있습니다. 다음을 사용하여 'example' 파일을 엽니다. 열려 있는() 방법. 'ofstream'은 파일에 데이터를 추가하는 데 사용됩니다. 파일 내에서 모든 작업을 수행한 후 다음을 사용하여 필요한 파일을 닫습니다. 닫다() 기능. 파일이 열리지 않으면 '파일이 지원되지 않습니다. 파일을 로드하는 중 오류가 발생했습니다'라는 오류 메시지가 표시됩니다.

파일이 열리고 텍스트가 콘솔에 표시됩니다.

텍스트 파일 읽기:

파일 읽기는 다음 예제의 도움으로 표시됩니다.

예시:

'ifstream'은 파일 내부에 저장된 데이터를 읽는 데 사용됩니다.

예제는 시작 부분에 주요 헤더 파일 을 포함합니다. 그런 다음 내부에서 'ifstream'을 사용하십시오. 기본() 기능. 'ifstream'의 도움으로 'example' 텍스트 파일 안에 저장된 텍스트를 보여주는 'New_File' 파일로 데이터를 읽습니다. 우리는 고용 열려 있는() 파일을 여는 방법. 다음으로, 우리는 'while' 루프를 사용할 것입니다. '예제' 텍스트 파일에서 데이터를 읽은 후, 닫다() 기능은 필요한 파일을 닫는 데 사용됩니다. 시스템에 특정 파일이 없으면 '파일을 열 수 없습니다'라는 메시지가 나타납니다.

텍스트 파일에 저장된 모든 정보는 그림과 같이 화면에 표시됩니다.

결론

위의 가이드에서 우리는 C++ 언어에 대해 자세히 배웠습니다. 예제와 함께 모든 주제가 시연되고 설명되며 각 작업이 정교해집니다.