Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++
  • C 프로그래밍
  •   
  • C++
  •   
  • Redis
  •   
  • BASH 프로그래밍
  •   
  • Python
  •   
  • Java
  •   
  • 데이터 베이스
  •   
  • HTML
  •   
  • JavaScript
  •   
  • 프로그램 작성
  •   
  • CSS
  •   
  • Ruby
  •   
  • SQL
  •   
  • IOS
  •   
  • Android
  •   
  • MongoDB
  •   
  • MySQL
  •   
  • C#
  •   
  • PHP
  •   
  • SQL Server
  • C++

    1. C++에서 구조체와 클래스의 차이점은 무엇입니까?

      구조체의 멤버와 기본 클래스는 기본적으로 공용이지만 클래스에서는 기본적으로 개인용입니다. 구조체와 클래스는 기능적으로 동일합니다. 그러나 의미론으로 인해 다른 장소에서 사용됩니다. 구조체는 데이터를 나타내는 데 사용되는 데이터 구조와 비슷합니다. 반면에 클래스는 기능적 성향이 강한 구조에 가깝습니다. 작동 방식과 작동 방식을 모방합니다.

    2. C++ 함수에 배열 전달

      C++에서는 전체 배열을 함수에 대한 인수로 전달할 수 없습니다. 그러나 인덱스 없이 배열 이름을 지정하여 배열에 대한 포인터를 전달할 수 있습니다. 1차원 배열을 함수의 인수로 전달하려면 다음 세 가지 방법 중 하나로 함수 형식 매개변수를 선언해야 하며 세 가지 선언 방법은 모두 컴파일러에 정수 포인터가 실행 중임을 알리기 때문에 유사한 결과를 생성합니다. 받을 수 있습니다. 배열을 함수에 전달하는 3가지 방법이 있습니다 - 포인터로서의 형식 매개변수 void myFunction(int *param) {   &

    3. C++ 프로그래밍의 일반적인 정의되지 않은 동작

      다음은 C++ 프로그래밍에서 정의되지 않은 동작의 가장 일반적인 원인입니다. 이 모든 것은 정의되지 않은 동작을 일으키기 위해 표준에 명시되어 있으며 프로그램을 작성할 때 어떤 희생을 치르더라도 피해야 합니다. 부호 있는 정수 오버플로 NULL 포인터 역참조, 크기 0의 새 할당에 의해 반환된 포인터, 아직 확실히 초기화되지 않은 포인터, 배열 끝 너머의 위치에 있는 포인터. 범위를 벗어나거나 삭제된 개체에 대한 포인터 사용 배열의 경계를 벗어나는 결과를 산출하는 포인터 산술 수행 호환되지 않는 유형의 개체에 대한 포인터 변

    4. C++ 함수에 2차원 배열 전달

      C++에서는 전체 배열을 함수에 대한 인수로 전달할 수 없습니다. 그러나 인덱스 없이 배열 이름을 지정하여 배열에 대한 포인터를 전달할 수 있습니다. 2D 배열을 함수에 전달하는 세 가지 방법이 있습니다 - 2D 배열의 열 크기 지정 void processArr(int a[][10]) {    // Do something } 포인터가 포함된 전달 배열 void processArr(int *a[10]) {    // Do Something } // When callingint *array[10

    5. C++에서 일반 캐스트 대 static_cast 대 dynamic_cast

      static_cast - 일반/일반 유형 변환에 사용됩니다. 이것은 또한 암시적 형식 강제 변환을 담당하는 캐스트이며 명시적으로 호출할 수도 있습니다. float를 int로, char를 int로 변환하는 경우 등의 경우에 사용해야 합니다. dynamic_cast - 이 캐스트는 다형성을 처리하는 데 사용됩니다. 파생 클래스로 캐스팅할 때만 사용해야 합니다. 이것은 기본 클래스에서 파생 클래스로 형변환할 때 상속에서만 사용됩니다. 일반 캐스팅 - 이것은 const_cast, static_cast 및 reinterpret_cast를

    6. C++에서 정방향 선언이란 무엇입니까?

      정방향 선언은 선언 다음의 코드가 Person이라는 이름의 클래스가 있음을 알 수 있도록 합니다. 이것은 사용된 이름을 볼 때 컴파일러를 만족시킵니다. 나중에 링커는 클래스의 정의를 찾습니다. 예 Class Person; void myFunc(Person p1) {    // ... } Class Person {    // Class definition here }; 따라서 이 경우 컴파일러가 myFunc를 만나면 코드 어딘가에서 이 클래스를 만날 것임을 알게 됩니다. 클래스를 사용하는 코드

    7. C/C++에서 전역 변수를 사용하지 말아야 하는 이유는 무엇입니까?

      C++뿐만 아니라 모든 언어에서 전역 변수를 사용하지 않아야 합니다. 이는 이러한 변수가 전역 네임스페이스를 오염시키고 모든 파일에서 액세스할 수 있으므로 어디에서나 수정할 수 있기 때문에 큰 프로젝트에서 매우 불쾌한 버그를 유발할 수 있기 때문입니다. 이것이 전역 변수가 나쁜 것으로 간주되는 몇 가지 이유입니다 - 전역 변수는 코드의 어느 부분에서나 변경될 수 있으므로 모든 가능한 사용을 기억하거나 추론하기 어렵습니다. 전역 변수는 액세스 제어를 가질 수 없습니다. 프로그램의 일부에 국한될 수 없습니다. 전역 변수

    8. C++에서 'struct'와 'typedef struct'의 차이점은 무엇입니까?

      C++에서는 struct와 typedef struct 간에 차이가 없습니다. C++에서는 모든 struct/union/enum/class 선언이 암시적으로 typedef인 것처럼 작동하기 때문입니다. ed, 이름이 같은 이름을 가진 다른 선언에 의해 숨겨지지 않는 한. typedef를 앞으로 선언할 수 없다는 미묘한 차이점이 있습니다. 따라서 typedef 옵션의 경우 typedef가 포함된 파일을 포함해야 어디에서나 사용됩니다.

    9. POSIX를 사용하여 C++ 내에서 명령을 실행하고 명령 출력을 얻는 방법은 무엇입니까?

      popen 및 pclose 기능을 사용하여 프로세스 간에 파이프할 수 있습니다. popen() 함수는 파이프를 만들고 분기하고 셸을 호출하여 프로세스를 엽니다. 버퍼를 사용하여 stdout의 내용을 읽고 계속해서 결과 문자열에 추가하고 프로세스가 종료될 때 이 문자열을 반환할 수 있습니다. 예시 #include <iostream> #include <stdexcept> #include <stdio.h> #include <string> using namespace std; string ex

    10. C++ STL을 사용하여 사용자 정의 개체 벡터 정렬

      C++ STL 함수 std::sort를 사용하여 사용자 정의 개체의 벡터를 정렬할 수 있습니다. 정렬 함수에는 첫 번째, 마지막, 비교자를 인수로 사용하는 오버로드된 형식이 있습니다. 첫 번째와 마지막은 컨테이너의 첫 번째 및 마지막 요소에 대한 반복기입니다. 비교기는 컨테이너를 정렬하는 방법을 알려주는 데 사용할 수 있는 술어 함수입니다. 예시 #include<iostream> #include<algorithm> #include<vector> using namespace std; struct M

    11. 세그먼테이션 오류는 C++에서 실제 정의되지 않은 동작입니까?

      정의되지 않은 동작은 구현자(예:컴파일러 또는 OS)와 컴퓨터가 원하는 모든 작업, 즉 결과에 신경 쓰지 않도록 하는 자유를 주는 방법입니다. 세그먼테이션 오류가 발생하는 경우는 본질적으로 일시적입니다. 항상 분할 오류가 발생하지는 않지만 올바르게 실행될 수도 있습니다(또는 최소한 표시되는 것처럼 보일 수도 있음). 예를 들어, 다음 코드 조각을 고려하십시오 - #include<iostream> int main() {     int arr[2];     arr[0] = 0;  

    12. C++에서 std::endl과 \n의 차이점은 무엇입니까?

      \n 개행을 출력합니다(적절한 플랫폼별 표현으로 Windows에서 \r\n을 생성함). 그러나 std::endl은 동일한 작업을 수행하고 스트림을 플러시합니다. 일반적으로 스트림을 즉시 플러시할 필요가 없으며 성능만 저하되므로 대부분 std::endl을 사용할 이유가 없습니다. 출력이 적시에(즉, 지연 없이) 사용자에게 표시되기를 기대하기 때문에 수동으로 스트림을 플러시하려면 스트림에 \n을 쓰는 대신 std::endl을 사용해야 합니다.

    13. C++에서 int를 문자열로 변환하는 방법은 무엇입니까?

      C에서 itoa 함수를 사용하여 int를 문자열로 변환할 수 있습니다. 예 #include<iostream> int main() {    int a = 10;    char *intStr = itoa(a);    string str = string(intStr);    cout << str; } 출력 이것은 출력을 줄 것입니다 - 10 이는 정수를 문자열로 변환합니다. C++11에서는 같은 용도로 사용할 수 있는 새로운 메소드인 to_

    14. C++에서 명시적 키워드는 무엇을 의미합니까?

      C++의 명시적 키워드는 유형을 암시적으로 변환하지 않도록 생성자를 표시하는 데 사용됩니다. 예를 들어 Foo − 클래스가 있는 경우 class Foo { public:     Foo(int n); // allocates n bytes to the Foo object     Foo(const char *p); // initialize object with char *p }; 이제 시도하면 Foo mystring = 'x'; 문자 x는 암시적으로 int로 변환된 다음 Foo(int)

    15. C++의 생성자 내부에서 가상 함수를 호출하는 방법은 무엇입니까?

      생성자 또는 소멸자에서 가상 함수를 호출하는 것은 위험하므로 가능하면 피해야 합니다. 호출한 가상 함수는 파생 클래스가 아닌 기본 클래스에서 호출되기 때문입니다. C++에서 모든 클래스는 고유한 구성을 입력하기 전에 가상 메소드 테이블의 버전을 빌드합니다. 따라서 생성자에서 가상 메서드를 호출하면 기본 클래스의 가상 메서드가 호출됩니다. 또는 해당 수준에서 구현이 없는 경우 순수한 가상 메서드 호출을 생성합니다. Base가 완전히 생성되면 컴파일러는 Derived 클래스 빌드를 시작하고 Derived 클래스의 구현을 가리키도록 메서

    16. C++에 헤더 파일과 .cpp 파일이 있는 이유는 무엇입니까?

      C++에는 구현에서 인터페이스를 분리하기 위한 헤더 및 .ccp 파일이 있습니다. 헤더 파일은 클래스(또는 구현되는 모든 것)가 수행할 무엇, 즉 Java의 인터페이스와 같은 클래스의 API를 선언합니다. 반면에 cpp 파일은 이러한 기능을 수행할 방법, 즉 이러한 선언된 기능의 구현을 정의합니다. 이렇게 하면 종속성이 줄어듭니다. 헤더를 사용하는 코드는 구현에 대한 모든 세부 정보와 이를 위해 필요한 다른 클래스/헤더를 알 필요가 없습니다. 구현하려는 항목에만 집중하면 됩니다. 이렇게 하면 구현을 변경할 때 필요한 컴파일 시간과

    17. C++에서 개행을 기다리지 않고 표준 입력에서 문자 읽기

      이 작업을 수행할 수 있는 이식 가능한 솔루션이 없습니다. Windows에서는 conio(Console I/O) 라이브러리의 getch() 함수를 사용하여 문자를 누를 수 있습니다. 예 #include<iostream> #include<conio.h> using namespace std; int main() {     char c;     while(1){ // infinite loop         c = getch();   &n

    18. C++에서 문자열을 int로 구문 분석하는 방법은 무엇입니까?

      문자열 스트림을 사용하여 C++의 int를 int로 구문 분석할 수 있습니다. 이 방법에서 약간의 오류 검사를 수행해야 합니다. 예시 #include<iostream> #include<sstream> using namespace std; int str_to_int(const string &str) {    stringstream ss(str);    int num;    ss >> num;    return num; }

    19. C++에서 std::string을 const char* 또는 char*로 변환하는 방법은 무엇입니까?

      문자열 클래스의 c_str() 메서드를 사용하여 문자열 내용이 포함된 const char*를 가져올 수 있습니다. 예시 #include<iostream> using namespace std; int main() {    string x("hello");    const char* ccx = x.c_str();    cout << ccx; } 출력 이것은 출력을 줄 것입니다 - hello 문자*를 얻으려면 복사 기능을 사용하세요. 예시

    20. C++에서 cout을 사용하여 전체 정밀도로 이중 값을 인쇄하려면 어떻게 해야 합니까?

      출력 스트림 cout을 사용하면 cout에서 직접 정밀도를 설정하고 고정 형식 지정자를 사용하는 데 사용할 수 있는 조작기를 사용할 수 있습니다. double의 전체 정밀도를 얻으려면 limits 라이브러리를 사용할 수 있습니다. 예를 들어, 예시 #include<iostream> #include <limits> using namespace std; int main() {     // Get numeric limits of double     typedef std::numer

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:13/300  20-컴퓨터/Page Goto:1 7 8 9 10 11 12 13 14 15 16 17 18 19