45 년 상위 2021 개 C ++ 인터뷰 질문


다음은 기본 C ++ 인터뷰 질문과 고급 C ++ 인터뷰 질문을 다루는 일반적인 C ++ 인터뷰 질문입니다. 이 튜토리얼에서는 인터뷰 준비에 도움이되는 C ++ 기술 면접 질문과 C ++ 면접 질문을 다룹니다.

차례

1. C ++ 란 무엇입니까?

C ++는 절차 적 및 객체 지향 프로그래밍 언어를 모두 지원하는 C 프로그래밍 언어의 상위 집합입니다.

2. C ++의 장점은 무엇입니까?

  • 휴대용 : 모든 플랫폼에서 실행 가능
  • 객체 지향 프로그래밍 언어 : 클래스, 객체, 다형성, 오버로딩, 상속 등을 지원합니다.
  • 데이터 숨김 : 침입자로부터 데이터 보호
  • 메시지 전달 : 개체 간의 통신을 용이하게합니다.

3. C와 C ++의 차이점은 무엇입니까?

CC + +
Dennis Ritchie 개발Bjarne Stroustrup에 의해 개발
구조화 된 프로그래밍 언어구조적 및 객체 지향 프로그래밍 언어 모두 지원
C ++의 하위 집합입니다.C의 상위 집합입니다.
데이터 숨김을 지원하지 않습니다.데이터 숨김 지원
함수 오버로딩 또는 연산자 오버로딩을 지원하지 않습니다.함수 및 연산자 오버로딩 모두 지원
참조 변수를 지원하지 않습니다.참조 변수 지원
scanf () 및 printf ()를 표준 입력 및 출력으로 사용합니다.cin 및 cout을 표준 입력 및 출력으로 사용
구조 내에서 함수를 구현할 수 없습니다.구조 내에서 기능 구현 가능

4. 수업이란 무엇입니까?

클래스는 데이터 구조. 즉, 사용자 정의 데이터 형식 class 키워드를 사용하여 지정됩니다. 포함 기능 및 멤버 객체 또는 클래스의 인스턴스를 사용하여 액세스 할 수 있습니다. 예를 들어 EmpName, EmpId를 멤버로, getName () 및 setName ()을 함수로 갖는 Employee 클래스를 가질 수 있습니다. 단일 클래스에 대해 여러 인스턴스를 만들 수 있습니다.

5. 개체 란 무엇입니까?

객체는 상태와 동작이있는 클래스의 인스턴스입니다. 객체를 사용하여 액세스 기능 및 클래스의 구성원. 객체를 만들 때마다 메모리를 할당 또는 우리가 그것을 만드는 방법에 따라 저장 공간.

6. OOP의 다양한 기능이나 개념은 무엇입니까?

다음은 OOP의 기능 또는 개념입니다.

  • 클래스
  • 목적
  • 계승
  • 캡슐화
  • 추출
  • 데이터 바인딩
  • 다형성

7. C ++의 다른 데이터 유형은 무엇입니까?

아래는 다릅니다 데이터 유형 C ++에서 :

  • 사전 정의 데이터 유형 : int, char, float 및 double
  • 사용자 정의 데이터 유형: 배열, 포인터, 문자열 및 구조

8. C ++에는 어떤 유형의 스토리지 클래스가 있습니까?

다양한 유형의 스토리지 클래스는 다음과 같습니다.

  • Automatic
  • REGISTER
  • 정적인
  • 외부
  • 변하기 쉬운

9. C ++의 토큰은 무엇입니까?

토큰은 프로그램의 작은 부분입니다. 다음은 C ++에서 사용할 수있는 다양한 유형의 토큰입니다.

  • 문자열
  • 식별자
  • 키워드
  • 상수
  • 연산자

10. C ++에는 자동 가비지 콜렉션이 있습니까?

아니요, C ++는 자동 가비지 수집을 지원하지 않습니다.

11. C ++에서 다양한 유형의 다형성은 무엇입니까?

다형성에는 두 가지 유형이 있습니다.

  • 컴파일 타임 다형성 : 컴파일 타임에 함수 호출이 결정되는 정적 다형성이라고도합니다.
  • 런타임 다형성 : 함수 호출이 런타임에 결정되는 동적 다형성이라고도합니다.

12. C ++에서 Late Binding은 어떻게 구현됩니까?

가상 테이블 사용

13. C ++에서 네임 스페이스 란 무엇입니까?

네임 스페이스는 변수 이름에서 명명 충돌과 모호성을 제거하는 데 사용하는 코드 조각입니다. 이것은 다른 함수에 대해 동일한 변수 이름이있을 때 유용합니다. 네임 스페이스를 사용하여 이러한 모호성을 제거 할 수 있습니다. 다음과 같이 네임 스페이스를 정의 할 수 있습니다.

namespace name {
//body
}

아래와 같이 네임 스페이스 이름을 사용하여 변수 이름에 액세스 할 수 있습니다.

namespace_name :: variable_name;

14. 포인터에 허용되는 다른 작업은 무엇입니까?

포인터가 지원하는 두 가지 작업이 있습니다.

  • 증가 포인터 – 이것은 사전 증가 및 사후 증가 포인터를 포함합니다.
  • 포인터 감소

15. delete []와 delete의 차이점은 무엇입니까?

delete []는 배열을 해제하고 delete는 메모리를 해제합니다.

16. 다른 C ++ 액세스 지정자는 무엇입니까?

다른 C ++의 액세스 지정자 위치 :

  • private : 동일한 클래스 내의 범위 및 액세스
  • 공개 : 어디서나 범위 및 액세스
  • protected : 동일한 클래스 및 하위 클래스 내의 범위 및 액세스

17. 친구 기능이란 무엇입니까?

친구 기능은 비회원 기능으로 개인 및 보호 데이터에 액세스. 이 함수는 클래스의 일부가 아니지만 개인 데이터에 액세스 할 수 있도록 클래스 내에서 선언되어야합니다. 일반적으로 비회원 함수는 개인 데이터에 액세스 할 수 없지만 그렇게해야하는 상황이 있습니다. 이 경우 친구 기능이 유용합니다.

18. 가상 기능이란 무엇입니까?

가상 함수는 파생 클래스에서 구현을 재정의하는 데 도움이되는 멤버 함수입니다. 기본 및 파생 클래스에 같은 이름의 두 함수가있는 경우 기본 클래스 함수는 virtual 키워드로 선언됩니다. 따라서 두 클래스는 구현이 다른 동일한 함수 이름을 가질 수 있습니다. 런타임 동안 가리키는 개체 포인터를 기반으로 호출 할 함수를 결정합니다.

19. 소멸자 란 무엇입니까?

개체가 범위를 벗어나면 소멸자는 리소스를 삭제합니다. 클래스 이름과 이름이 같으며 물결표 '~'로 표시됩니다. 반환 값이나 인수가 없습니다.

20. 오버 플로우 오류 란 무엇입니까?

오버플로 오류는 실제 사용 가능한 공간보다 더 많은 공간이 필요할 때 발생하는 산술 오류 유형입니다.

21. 과부하 란 무엇입니까?

오버로딩은 동일한 개체 또는 함수가 이름은 같지만 구현이 다른 경우 발생합니다. 오버로딩에는 함수 오버로딩과 연산자 오버로딩의 두 가지 유형이 있습니다.

22. 함수 재정의 란 무엇입니까?

함수 재정의는 파생 클래스가 기본 클래스에있는 동일한 함수의 다른 구현을 제공하는 프로세스입니다. 파생 클래스 함수는 기본 클래스 함수를 재정의합니다.

23. 가상 상속이란 무엇입니까?

가상 상속은 계층의 다른 클래스에 있지만 기본 클래스 개체의 복사본을 하나만 만들 수있는 기술입니다. 이것은 주로 다중 상속에 유용합니다.

24. 생성자 란 무엇입니까?

생성자는 클래스 내에서 사용할 수있는 새 개체 또는 값을 만들고 초기화하는 데 도움이됩니다. 생성자는 클래스 이름과 동일한 이름을 갖습니다.

25. 포인터 란 무엇입니까?

포인터는 다른 변수의 주소를 저장하는 변수입니다. int 또는 char 등과 같은 데이터 유형의 변수를 가리키는 데 사용할 수 있습니다.

26. 범위 해결 연산자 란 무엇입니까?

범위 확인 연산자를 사용하면 클래스 외부에서 멤버 함수를 정의 할 수 있습니다. ::로 표시됩니다.

27. 순수 가상 기능이란 무엇입니까?

순수 가상 기능은 기능 정의를 포함하지 않는 가상 기능 유형입니다. 값 0으로 선언됩니다.

virtual void function_name()=0;

28. 구조체와 클래스의 차이점은 무엇입니까?

구조체수업
구조체는 다른 데이터 유형의 값을 보유하는 사용자 정의 데이터 유형입니다.클래스는 멤버와 함수를 포함하는 사용자 정의 데이터 유형입니다.
변수는 스택 메모리에 저장됩니다.변수는 힙 메모리에 저장됩니다.
변수를 직접 초기화 할 수 없습니다.변수를 직접 초기화 할 수 있습니다.
변수의 기본 액세스 지정자는 공용입니다.변수의 기본 액세스 지정자는 private입니다.
struct 키워드를 사용합니다.class 키워드를 사용합니다.
상속을 지원하지 않습니다.상속 지원
구조 유형은 값 유형입니다.클래스 유형은 참조 유형입니다.

29. 가상 소멸자는 무엇입니까?

가상 소멸자는 기본 클래스에서 파생 클래스의 개체를 파괴하는 데 사용됩니다. 가상 소멸자는 가질 수 있지만 생성자는 가질 수 없습니다. 가상 소멸자는 앞에 물결표 (~)로 표시됩니다. virtual 예어.

30. Hello world를 인쇄하기위한 C ++ 프로그램 작성

#include <iostream>

using namespace std;

int main()
{
    cout<<"Hello World";

    return 0;
}

31. 문자열을 입력하고 길이를 찾는 C ++ 프로그램 작성

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;

int main()
{
    char s[20];
    int length;
    cout<< "Enter a string: " <<endl;
    cin>>s;
    length = strlen(s);
    cout<<"The length of the string is: " <<length;
    return 0;
}
Enter a string:                                                                                                                               
tutorial                                                                                                                                      
The length of the string is: 8

32.이 포인터는 무엇입니까?

this 포인터는 현재 변수 또는 개체의 주소를 보유하는 변수입니다.

33. 함수 오버로딩과 연산자 오버로딩의 차이점은 무엇입니까?

함수 오버로딩은 동일한 함수가 다른 유형과 인수 개수를 가지지 만 동일한 함수 이름을 갖는 반면 연산자 오버로딩은 다른 구현이나 기능을 가진 동일한 연산자를 사용하는 기술입니다.

34. C ++에서 정적 멤버 란 무엇입니까?

정적 멤버는 static 키워드 및 메모리를 할당 한 번만. 정적 멤버 함수를 다음과 같이 선언 할 수 없습니다. 가상 이 포인터를 포함 할 수 없습니다.

35. 참조 변수 란 무엇입니까?

참조 변수는 원래 변수의 값을 업데이트하거나 변경하는 데 도움이됩니다. 원래 변수와 동일한 메모리를 공유합니다.

36. 복사 생성자 란 무엇입니까?

A 복사 생성자 동일한 클래스의 다른 개체를 사용하여 개체를 초기화하는 멤버 함수입니다.

37. C ++는 기본 데이터 유형으로 문자열을 지원합니까?

아니요, C ++는 문자열을 기본 형식으로 지원하지 않습니다. 데이터 형식.

38. 다이아몬드 문제는 무엇이며 어디에서 발생합니까?

다중 상속 및 계층 적 상속을 사용하여 하이브리드 상속을 지원할 수없는 다중 상속에서 다이아몬드 문제가 발생합니다.

39. 인라인 함수 란 무엇입니까?

인라인 함수는 컴파일러가 함수를 호출 할 때만 컴파일하는 함수입니다. 이 함수는 키워드 인라인으로 진행됩니다.

40. volatile 키워드의 사용은 무엇입니까?

volatile 키워드는 변수가 외부에서 변경 될 수 있음을 컴파일러에 지시하여 컴파일러 최적화를 방지합니다.

41. 값으로 전달 정의 및 참조로 전달

값에 의한 전달은 값을 매개 변수로 함수에 전달하는 것을 의미하므로 원래 변수에 영향을주지 않는 반면 참조로 전달은 변수의 참조를 전달하여 원래 변수 값을 변경 함을 의미합니다.

42. 자동 키워드 란 무엇입니까?

auto 키워드는 기본적으로 변수가 자동으로 생성되는 지역 변수를 참조합니다. 이러한 변수는 스택 메모리에 저장됩니다.

43. C ++에서 루프의 다른 유형은 무엇입니까?

다음은 다양한 유형의 루프입니다.

  • while 루프
  • for 루프
  • do-while 루프

44. 추상 클래스 란 무엇입니까?

추상 클래스는 함수 선언 만 포함하고 함수 정의를 포함하지 않는 하나 이상의 순수 가상 함수를 포함하는 클래스입니다.

45. 기본 생성자는 무엇입니까?

기본 생성자는 컴파일러가 자동으로 생성하고 인수가없는 생성자입니다.