함수 재정의는 C++의 가장 일반적인 기능입니다. 기본적으로 함수 재정의는 기본 클래스에 있는 함수를 재정의하고 파생 클래스에서도 정의하는 것을 의미합니다. 따라서 함수 서명은 동일하지만 동작이 다릅니다. 그러나 프로그래머가 해당 기능을 재정의하는 동안 실수를 하는 상황이 있을 수 있습니다. 시그니처가 동일하지 않으면 다른 함수로 처리되지만 재정의된 메서드 또는 저것은 처리되지 않습니다. 이 경우 override 키워드를 사용할 수 있습니다. 이 키워드는 C++ +11에 도입되었습니다. 컴파일러는 이러한 종류의 키워드를 찾으면 이
큰 수의 계승을 찾기 위해 부스트 라이브러리를 사용할 수 있습니다. 이 라이브러리는 고정밀 숫자를 제공합니다. 부스트 다중 정밀도 라이브러리를 사용하면 64비트보다 더 높은 정밀도를 얻을 수 있습니다. 예 #include <bits/stdc++.h> #include <boost/multiprecision/cpp_int.hpp> using boost::multiprecision::cpp_int; using namespace std; cpp_int Large_Fact(int number) {  
여기서 우리는 C++에서 set, multiset, unordered_set 및 unordered_multiset의 차이점이 무엇인지 볼 것입니다. 예제를 사용하여 속성을 살펴보겠습니다. 설정 set의 속성은 아래와 같습니다. 정렬된 순서로 데이터 저장 고유한 값만 저장 데이터를 삽입하거나 삭제할 수 있지만 데이터를 변경할 수는 없습니다. 시작 및 종료 반복자를 사용하여 둘 이상의 요소를 제거할 수 있습니다. 반복자를 사용하여 순회할 수 있습니다. 세트는 이진 검색 트리를 사용하여 구현됩니다. 이제 예를 살펴보겠습니다. 예시
여기서 우리는 C++에서 내장 데이터 유형의 범위를 초과하면 결과가 어떻게 되는지 볼 수 있습니다. 몇 가지 예를 살펴보겠습니다. 첫 번째는 문자 유형 데이터입니다. 여기서 우리는 0에서 300까지의 루프를 사용하고 있으므로 0에서 300까지 인쇄한 다음 중지해야 합니다. 그러나 하나의 무한 루프를 생성합니다. 문자 유형 데이터는 -128에서 127까지 유지됩니다. 따라서 127에서 증가하면 다시 -128이 됩니다. 따라서 포인트 300에 도달하지 않습니다. 예시 #include <iostream> using names
3의 법칙은 C++를 사용할 때의 경험 법칙입니다. 이것은 수업에 다음 중 하나가 필요한 경우 복사 생성자, 할당 연산자, 또는 소멸자, 명시적으로 정의된 경우 이 세 가지가 모두 필요할 수 있습니다. 왜 이런거야? 클래스에 위의 항목 중 하나가 필요한 경우 동적으로 할당된 리소스를 관리하고 있고 이를 성공적으로 달성하기 위해 다른 리소스가 필요할 수 있기 때문입니다. 예를 들어 할당 연산자가 필요한 경우 현재 참조로 복사되고 있는 개체의 복사본을 만들어 리소스를 할당하게 됩니다. 복사를 위한 복사 생성자와 이러한 리소스를
여기에서 생성자가 호출될 때 볼 수 있습니다. 여기서 생성자는 다양한 유형입니다. 글로벌, 로컬, 정적 로컬, 동적. 전역 객체의 경우 생성자는 기본 함수에 들어가기 전에 호출됩니다. 예시 #include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling Constructor&qu
여기서 우리는 C++에서 int 및 long 유형 데이터의 크기가 무엇인지 볼 것입니다. 크기는 시스템 아키텍처 및 운영 체제에 따라 다릅니다. 따라서 32비트 시스템에서 표준은 ILP32입니다. 이 표준에서 int, long 및 포인터 변수는 32비트입니다. 64비트 시스템의 경우 두 가지 변형이 있습니다. Linux 운영 체제의 경우 표준은 LP64입니다. 여기서 long과 pointer는 64비트이지만 int는 32비트입니다. Windows 운영 체제의 경우 표준은 LLP64입니다. 여기서 long long은 64비트이지만
여기서는 C++를 통해 POSIX 명령을 사용하는 방법을 살펴보겠습니다. 프로세스는 매우 간단합니다. system()이라는 함수를 사용해야 합니다. 이 안에 string을 전달해야 합니다. 해당 문자열에는 POSIX 명령이 포함됩니다. 구문은 아래와 같습니다. system(“command”) 예시 #include <iostream> using namespace std; int main () { cout << "Print string using echo c
Linux의 경우 gcc를 사용하여 C/C++ 코드를 컴파일할 수 있습니다. 이 컴파일러는 glibc 라이브러리를 사용합니다. backtrace() 함수를 사용하여 오류를 추적할 수 있습니다. 이 함수는 execinfo.h 헤더 파일 안에 있습니다. 이 예에서는 스택 추적 기능을 사용하여 Segmentation 오류 오류를 표시합니다. 예시 #include <iostream> #include <execinfo.h> #include <signal.h> #include <cstdlib> #in
C 또는 C++에서는 임의의 부동 소수점을 직접 만들 수 없습니다. 약간의 트릭을 사용하여 임의의 float를 생성할 수 있습니다. 2개의 임의의 정수 값을 생성한 다음 이를 나누어 임의의 부동 소수점 값을 얻습니다. 때로는 정수 몫을 생성할 수 있으므로 그 확률을 줄이기 위해 결과에 0.5와 같은 부동 소수점 상수를 곱합니다. 예시 #include #include #include 네임스페이스 사용 std;main() { srand((unsigned int)time(NULL)); float a =5.0; for (int i=0;i
여기에서 static_cast<>와 일반 C 스타일 캐스트의 차이점이 무엇인지 살펴보겠습니다. (int)x와 같은 일반 캐스트는 C++에서 static_cast(x)가 사용되는 C 스타일 유형 캐스팅입니다. 이 static_cast<>()는 컴파일 시간 확인 기능을 제공하지만 C 스타일 캐스팅은 이를 지원하지 않습니다. 이 static_cast<>()는 C++ 코드 내부 어디에서나 찾을 수 있습니다. 그리고 이 C++ 캐스트를 사용하면 의도가 훨씬 더 잘 전달됩니다. 캐스트와 같은 C에서는 때때로 다른 유형 데이터를 가리키기
여기서 우리는 C++ 프로그램에서 x(사용자가 제공한) 밀리초 동안 잠자는 방법을 볼 것입니다. 이것을 하기 위해 우리는 다른 라이브러리를 사용할 수 있습니다. 하지만 여기에서는 clock() 함수를 사용하고 있습니다. clock()은 현재 CPU 시간을 반환합니다. 여기서 우리는 시계의 종료 시간과 주어진 x 값을 찾으려고 노력할 것입니다. 그런 다음 해당 시간 동안 하나의 빈 while 루프를 실행하여 시간을 가집니다. 여기에서 CLOCKS_PER_SEC라는 매크로가 사용되며 이는 초당 클록 틱 수를 찾습니다. 개념에 대한
유니코드 문자를 인쇄하는 프로세스는 C++의 실제 인쇄 프로세스와 매우 유사합니다. 접두사 \u를 사용하여 유니코드 값을 넣을 수 있습니다. 따라서 유니코드 문자를 성공적으로 인쇄할 수 있습니다. 참고: 콘솔이 유니코드를 지원하지 않으면 올바른 결과를 얻을 수 없습니다. 여기에서 우리는 이 문제를 해결하기 위해 Linux 시스템을 사용했습니다. 예시 #include <iostream> using namespace std; int main() { cout << "Characte
런타임에 가상 메모리 사용량 또는 상주 세트 크기 등과 같은 메모리 사용량을 얻을 수 있습니다. 그것들을 얻기 위해 우리는 일부 시스템 라이브러리를 사용할 수 있습니다. 이 프로세스는 운영 체제에 따라 다릅니다. 이 예에서는 Linux 운영 체제를 사용하고 있습니다. 그래서 여기서는 C++를 사용하여 Linux 환경에서 메모리 사용량 통계를 얻는 방법을 살펴보겠습니다. /proc/self/stat 폴더에서 모든 세부 정보를 얻을 수 있습니다. 여기서는 가상 메모리 상태와 상주 세트 크기를 가져옵니다. 예시 #include <
C++에서는 부스트 라이브러리를 사용하여 큰 숫자를 사용할 수 있습니다. 이 C++ 부스트 라이브러리는 널리 사용되는 라이브러리입니다. 이것은 다른 섹션에 사용됩니다. 그것은 응용 프로그램의 큰 영역을 가지고 있습니다. 예를 들어 boost를 사용하면 264와 같은 큰 숫자를 사용할 수 있습니다. C++에서. 여기서 우리는 부스트 라이브러리의 몇 가지 예를 볼 것입니다. 큰 정수 데이터 유형을 사용할 수 있습니다. int128_t, int256_t, int1024_t 등과 같은 다양한 데이터 유형을 사용할 수 있습니다. 이를 사용
여기에서 시간(프로그램의 경과 시간 또는 다른 종류의 시간)을 얻는 방법을 볼 것입니다. 여기서는 C++용 Linux 라이브러리를 사용하고 있습니다. timeval이라는 구조가 있습니다. 이 timeval은 시간을 초, 밀리초 단위로 저장합니다. 시작과 끝을 위한 두 개의 시간을 만든 다음 차이점을 찾을 수 있습니다. 예시 #include <sys/time.h> #include <iostream> #include <unistd.h> using namespace std; main() {
C++에서는 new 키워드를 사용하거나 사용하지 않고 클래스 개체를 인스턴스화할 수 있습니다. new 키워드를 사용하지 않으면 일반 객체와 같습니다. 이것은 스택 섹션에 저장됩니다. 스코프가 종료되면 소멸됩니다. 그러나 항목에 대한 공간을 동적으로 할당하려는 경우 해당 클래스의 포인터를 만들고 new 연산자를 사용하여 인스턴스화할 수 있습니다. C++에서 new는 동적으로 메모리를 할당하는 데 사용됩니다. 예시 #include <iostream> using namespace std; class Point {
여기에서 우리는 리눅스 터미널에 어떤 색으로 몇 줄을 인쇄하는 방법을 볼 것입니다. 여기서 우리는 C++ 코드에 특별한 작업을 수행합니다. 우리는 이것을 수행하기 위해 일부 Linux 터미널 명령을 사용하고 있습니다. 이러한 출력을 위한 명령어는 아래와 같습니다. \033[1;31m Sample Text \033[0m 텍스트 스타일과 색상에 대한 몇 가지 코드가 있습니다. 아래에 나열되어 있습니다. 색상 포그라운드 코드 배경 코드 검정색 30 40 빨간색 31 41 녹색 32 42 노란색 33 43 파란색
때때로 우리는 현재 C++ 표준이 무엇인지 알아야 합니다. 이러한 종류의 정보를 얻기 위해 __cplusplus라는 매크로를 사용할 수 있습니다. 다른 표준의 경우 이 값은 다음과 같습니다. 표준 __cplusplus 출력 C++ 이전 C++98 1 C++98 199711L C++98 + TR1 확인할 수 없습니다. C++98로 표시됩니다. C++11 201103L C++14 201402L C++17 201703L 예시 #include<iostream> int main() { &nb
C++ 코드를 사용하여 콘솔을 지울 수 있습니다. 이렇게 하려면 몇 가지 시스템 명령을 실행해야 합니다. Linux 시스템에서는 POSIX가 사용됩니다. system() 함수를 호출하여 시스템 명령을 실행할 수 있습니다. Linux에서 콘솔을 지우려면 clear 명령을 사용할 수 있습니다. 이것은 system() 함수 내에서 전달됩니다. 더 나은 아이디어를 얻기 위해 코드를 살펴보겠습니다. 예시 #include <iostream> using namespace std; int main () { co