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

    1. C/C++에서 #include <filename>과 #include 파일 이름의 차이점은 무엇입니까?

      두 형식의 차이점은 전처리기가 포함될 파일을 검색하는 위치에 있습니다. #include 전처리기는 구현에 따라 검색하고 컴파일러에서 미리 지정한 디렉토리를 검색합니다. 이 방법은 일반적으로 표준 라이브러리 헤더 파일을 포함하는 데 사용됩니다. #include 파일 이름 전처리기는 지시문이 포함된 파일과 동일한 디렉토리에서 검색합니다. 이것이 실패하면 #include 형식처럼 작동하기 시작합니다. 이 방법은 일반적으로 자신의 헤더 파일을 포함하는 데 사용됩니다.

    2. new를 사용하여 C++에서 2차원 배열을 어떻게 선언합니까?

      동적 2D 배열은 기본적으로 배열에 대한 포인터 배열입니다. 따라서 먼저 포인터에 대한 포인터 배열을 초기화한 다음 루프의 각 1d 배열을 초기화해야 합니다. 예 #include<iostream> using namespace std; int main() {    int rows = 3, cols = 4;    int** arr = new int*[rows];    for(int i = 0; i < rows; ++i)    arr[i] = new

    3. 가변 길이 배열이 C++ 표준의 일부가 아닌 이유는 무엇입니까?

      일반적으로 사용 가능한 공간이 거의 없는 스택에 잠재적으로 큰 배열을 생성해야 하는 것은 좋지 않습니다. 크기를 미리 알면 정적 배열을 사용할 수 있습니다. 그리고 미리 크기를 모르면 안전하지 않은 코드를 작성하게 됩니다. 가변 길이 배열은 유형 시스템에서 큰 변화가 필요하기 때문에 C++에 기본적으로 포함될 수 없습니다. C++의 가변 길이 배열에 대한 대안은 벡터인 C++ STL에서 제공됩니다. 다음과 같이 사용할 수 있습니다 - 예시 #include<iostream> #include<vector> usin

    4. C++의 3법칙 대 5법칙?

      3의 법칙은 C++를 사용할 때의 경험 법칙입니다. 이것은 수업에 다음 중 하나가 필요한 경우 복사 생성자, 할당 연산자, 또는 소멸자, 명시적으로 정의된 경우 이 세 가지가 모두 필요할 수 있습니다. 왜 이런거야? 클래스에 위의 항목 중 하나가 필요한 경우 동적으로 할당된 리소스를 관리하고 있고 이를 성공적으로 달성하기 위해 다른 리소스가 필요할 수 있기 때문입니다. 예를 들어 할당 연산자가 필요한 경우 현재 참조로 복사되고 있는 개체의 복사본을 만들어 리소스를 할당하게 됩니다. 복사를 위한 복사 생성자와 이러한 리소스를

    5. C++11의 5법칙이란?

      5의 규칙은 리소스 관리를 위해 C++에 적용됩니다. 리소스 관리는 클라이언트가 관리 대상 개체의 수명에 대해 걱정할 필요가 없도록 하여 잠재적으로 C++ 코드의 메모리 누수 및 기타 문제를 제거합니다. 그러나 이러한 관리에는 대가가 따릅니다. Big Five의 규칙에 따르면 다음 기능 중 하나를 작성해야 하는 경우 모든 기능에 대한 정책이 있어야 합니다. 객체 Foo가 있으면 리소스 Foo를 처리하는 FooManager를 가질 수 있습니다. FooManager를 구현할 때 다음 기능을 구현해야 할 것입니다. - 소멸자 − 이

    6. C++ 대 C++0x 대 C++11 대 C++98

      C++98 C++ 표준의 초판이었습니다. 모든 기본 언어 구성, STL 및 표준 라이브러리를 정의했습니다. C++03 이 표준의 다음 개정판이었습니다. 이것은 92개의 핵심 언어 결함 보고서, 125개의 라이브러리 결함 보고서를 수정하고 하나의 새로운 언어 기능인 값 초기화만 포함했기 때문에 표준에 대한 버그 수정으로 주로 간주되었습니다. C++0x 2008-09년까지 완료될 예정이었으나 2011년에 마침내 완료된 진행 중인 작업의 이름입니다. C++11 2011년에 발표된 최신 C++ 표준이었습니다. 이는 기존 언어에 많은 주

    7. C++에서 새로운 배치의 용도는 무엇입니까?

      간단히 말하면, new 배치를 사용하면 주어진 변수에 이미 할당된 메모리에 개체를 구성할 수 있습니다. 이는 이미 할당된 동일한 메모리를 재할당하지 않고 재사용하는 것이 더 빠르기 때문에 최적화에 유용합니다. 다음과 같이 사용할 수 있습니다 - new (address) (type) initializer 주어진 유형의 새 객체가 생성되기를 원하는 주소를 지정할 수 있습니다. 예시 #include<iostream> using namespace std; int main() {    int a = 5; &nb

    8. C++0x와 C++11의 차이점은 무엇입니까?

      C++ 및 C 표준은 일반적으로 출판된 연도의 이름을 따서 명명됩니다. 예를 들어 C++의 경우 원래 표준이 1998년에 출판되었으므로 C++98이라고 합니다. , 그리고 2003년에 발표된 첫 번째 수정을 C++03이라고 합니다. 다음 개정판에서는 다음 표준이 2008년까지 완료될 예정이었으나 불확실하여 C++0x로 명명되었으며 x는 8 또는 9를 나타냅니다. 계획이 바뀌었지만 지금은 C++11이라고 합니다. 따라서 C++0x는 게시되기 전에 표준의 이름이었습니다. 2011년에 완료되면 C++11로 이름이 지정되었습니다.

    9. -std =c++11과 -std =gnu++11의 차이점은 무엇입니까?

      GNU C++ 컴파일러인 g++는 C++ 언어에 대한 확장을 제공합니다. 두 옵션의 차이점은 C++ 표준을 위반할 수 있는 이러한 GNU 확장이 활성화되었는지 여부입니다. 일부 확장은 표준을 위반하지 않는 경우 -std =c++11을 사용할 때 여전히 유효할 수 있습니다. GNU 컴파일러의 C++ 언어 확장 목록은 여기에서 찾을 수 있습니다. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html

    10. GCC에서 C++ 표준 지원

      GCC는 공개된 여러 ISO 표준에 따라 다양한 C++ 방언을 지원합니다. 구현하는 표준은 -std=명령줄 옵션을 사용하여 선택할 수 있습니다. C++98 − GCC는 2003년에 수정되고 C++03으로 이름이 변경된 1998 C++ 표준과 이후의 일부 결함 보고서를 완벽하게 지원합니다. C++11 − GCC 4.8.1은 이전에 C++0x로 알려졌던 2011 C++ 표준의 첫 번째 완전한 구현이었습니다. C++14 − GCC는 2014년에 발표된 C++ 표준의 최신 개정판을 완벽하게 지원합니다. C++17 − GCC는 2017년

    11. C++11의 가장 큰 변화

      C++11은 2011년에 발표된 최신 C++ 표준입니다. 이로 인해 기존 언어에 많은 주요 확장과 개선이 이루어졌습니다. 다음은 C++11의 주요 변경 사항/추가 사항입니다 - 초기화 목록 자동 유형 추론 Rvalue 참조 및 이동 생성자 constexpr – 일반화된 상수 표현식 일반 오래된 데이터의 정의 수정 균일한 초기화 범위 기반 for 루프 람다 함수 및 표현식 대체 함수 구문 명시적 재정의 및 최종 상수 널 포인터, nullptr 강력한 형식의 열거형 적절한 위치에서 연산자로 취급되지 않는 오른쪽 꺾쇠 괄호 가변 템플릿

    12. C++11 개요

      C++11은 2011년에 발표된 최신 C++ 표준입니다. 이로 인해 기존 언어에 많은 주요 확장과 개선이 이루어졌습니다. 2011년 8월 12일 ISO(국제 표준화 기구)의 승인을 받았으며 C++03을 대체했습니다. C++11은 C++0x라고도 합니다. 차기 개정판에서는 2008년까지 차기 표준이 완성될 예정이었으나 불확실하여 C++0x라는 이름을 붙였기 때문이다. 여기서 x는 8이나 9를 의미한다. 계획이 바뀌긴 했지만 이제 C++11이라고 합니다. 따라서 C++0x는 게시되기 전에 표준의 이름이었습니다. 2011년에 완료되면 C

    13. C++의 POD 유형은 무엇입니까?

      POD는 일반 오래된 데이터를 의미하는 C++의 약어입니다. 멤버 변수만 있고 메서드, 생성자, 소멸자, 가상 함수 등이 없는 클래스/구조체입니다. 예를 들어 예시 #include<iostream> using namespace std; // POD struct MyStruct {     int key;     string data; }; int main() {     struct MyStruct s;     s.key = 1;    

    14. C++11에서 람다 표현식이란 무엇입니까?

      C++ STL에는 std::for_each와 같은 유용한 일반 함수가 포함되어 있습니다. 불행히도, 특히 적용하려는 펑터가 특정 기능에 고유한 경우 사용하기가 상당히 복잡할 수 있습니다. 따라서 생성할 이 함수는 해당 네임스페이스에서 한 곳에서 사용되는 것입니다. 이에 대한 해결책은 익명 함수를 사용하는 것입니다. C++는 익명 함수 생성을 허용하기 위해 C++11에 람다 표현식을 도입했습니다. 예시 #include<iostream> #include<vector> #include <algorithm>

    15. C++에서 집계 및 POD란 무엇입니까?

      POD는 일반 오래된 데이터를 의미하는 C++의 약어입니다. 멤버 변수만 있고 메서드, 생성자, 소멸자, 가상 함수 등이 없는 클래스/구조체입니다. 예를 들어 예시 #include<iostream> using namespace std; // POD struct MyStruct {    int key;    string data; }; int main() {    struct MyStruct s;    s.key = 1;    s.d

    16. C++ 표준에서 int, long 유형의 크기는 얼마입니까?

      C++ 표준은 정수 유형의 크기를 바이트 단위로 지정하지 않습니다. 이러한 유형이 보유할 수 있어야 하는 최소 범위를 지정합니다. 비트 단위의 크기는 지정된 최소 범위에서 쉽게 찾을 수 있습니다. 표준을 말하는 것이 아니라 다양한 플랫폼에서 일반적으로 사용되는 크기는 다음과 같습니다. - 32비트 시스템의 경우 표준은 ILP32입니다. 즉, int, long 및 포인터는 모두 32비트 수량입니다. 64비트 시스템의 경우 Unix 표준은 LP64입니다. long 및 포인터는 64비트입니다(그러나 int는 32비트임). Window

    17. 범위를 벗어난 배열에 액세스해도 C++에서 오류가 발생하지 않는 이유는 무엇입니까?

      이는 C++에서 경계 검사를 수행하지 않기 때문입니다. Java 및 python과 같은 언어에는 경계 검사가 있으므로 경계를 벗어난 요소에 액세스하려고 하면 오류가 발생합니다. C++ 디자인 원칙은 동등한 C 코드보다 느리지 않아야 하며 C는 배열 경계 검사를 수행하지 않는다는 것입니다. 따라서 이 메모리에 액세스하려고 하면 C++ 표준으로 작성되었으므로 프로그램 동작이 정의되지 않습니다. 일반적으로 정의되지 않은 동작이 발생할 때마다 모든 일이 발생할 수 있습니다. 응용 프로그램이 충돌하거나 정지할 수 있으며 정상적으로 실행되거나

    18. C++에서 함수에 개체를 전달하는 방법은 무엇입니까?

      객체를 함수에 전달하는 네 가지 방법이 있습니다. X 클래스가 있고 fun 함수에 전달하려고 한다고 가정해 보겠습니다. 그러면 - 값으로 전달 이렇게 하면 함수 범위에서 개체의 얕은 로컬 복사본이 생성됩니다. 여기에서 수정한 사항은 전달된 객체에 반영되지 않습니다. 예를 들어, 선언 void fun(X x); 전화 걸기 X x; fun(x); 참조로 전달 이것은 객체에 대한 참조를 함수에 전달합니다. 여기에서 수정한 사항은 전달된 객체에 반영됩니다. 개체의 복사본이 생성되지 않습니다. 예를 들어, 선언 voi

    19. C++에서 정수 오버플로를 감지하는 방법은 무엇입니까?

      유일한 안전한 방법은 오버플로가 발생하기 전에 확인하는 것입니다. 그러나 정수 오버플로를 확인하는 몇 가지 해킹 방법이 있습니다. 따라서 unsigned int 추가에서 오버플로를 감지하는 것을 목표로 하는 경우 결과가 실제로 추가된 값보다 작은지 확인할 수 있습니다. 예를 들어 unsigned int x, y; unsigned int value = x + y; bool overflow = value < x; // Alternatively "value < y" should also work 이는 x와

    20. C++에서 쉼표 연산자는 어떻게 작동합니까?

      쉼표 연산자의 목적은 여러 표현식을 결합하는 것입니다. 쉼표로 구분된 표현식 목록의 값은 맨 오른쪽 표현식의 값입니다. 쉼표의 효과는 일련의 작업을 수행할 수 있도록 하는 것입니다. 다른 표현식의 값은 무시됩니다. 즉, 오른쪽의 표현식이 쉼표로 구분된 전체 표현식의 값이 됩니다. 예시 다음 프로그램은 쉼표 연산자의 작업을 보여줍니다 - #include <iostream> using namespace std; int main() {    int i, j;    j = 10;  

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