CTRL + C는 현재 실행 중인 작업에 인터럽트를 보내는 데 사용됩니다. 이 프로그램에서는 C++를 사용하여 CTRL + C 이벤트를 잡는 방법을 알아봅니다. CTRL + C는 C 또는 C++에서 하나의 신호입니다. 그래서 신호 포착 기술로 포착할 수 있습니다. 이 신호의 경우 코드는 SIGINT(Signal for Interrupt)입니다. 여기서 신호는 signal() 함수에 의해 포착됩니다. 그런 다음 신호를 받은 후 하나의 콜백 주소가 호출 함수에 전달됩니다. 더 나은 아이디어를 얻으려면 프로그램을 참조하십시오. 예시
여기서는 생성자를 사용하여 const 유형 멤버 변수를 초기화하는 방법을 살펴보겠습니다. 생성자를 사용하여 const 값을 초기화하려면 초기화 목록을 사용해야 합니다. 이 초기화 목록은 클래스의 데이터 멤버를 초기화하는 데 사용됩니다. 초기화될 멤버 목록은 생성자 뒤에 콜론 다음에 표시됩니다. 멤버는 쉼표로 구분됩니다. 예시 #include <iostream> using namespace std; class MyClass{ private: const int x
C++에서는 환경 아키텍처를 직접 확인할 수 있는 방법이 없습니다. 아키텍처를 확인하는 데 사용할 수 있는 두 개의 Windows 시스템용 매크로가 있습니다. 이러한 매크로는 _WIN64 및 _WIN32입니다. 시스템이 64비트이면 _WIN64가 1이 되고 그렇지 않으면 _WIN32가 1이 됩니다. 따라서 매크로 검사를 사용하여 아키텍처를 식별할 수 있습니다. 예시 #include <iostream> using namespace std; int main() { #ifdef _WIN64
여기서는 C++에서 상속을 방지하는 방법을 살펴보겠습니다. 상속을 방지하는 개념을 최종 클래스라고 합니다. Java 또는 C#에서는 final 클래스를 사용할 수 있습니다. C++에는 그러한 직접적인 방법이 없습니다. 여기서 우리는 C++에서 최종 클래스를 시뮬레이션하는 방법을 볼 것입니다. 여기에서 MakeFinalClass(기본 생성자는 private임)라는 추가 클래스를 하나 생성합니다. 이 함수는 우리의 목적을 해결하는 데 사용됩니다. 기본 클래스 MyClass는 친구 클래스이므로 MakeFinalClass의 생성자를 호
여기서는 GCC(GNU C Compiler)를 사용하여 C++ 프로그램을 컴파일하는 방법을 살펴보겠습니다. 이 프로그램을 컴파일하려고 합니다. 예시 #include<iostream> using namespace std; main() { cout << "Hello World. This is C++ program" << endl; } 사용 이것이 C 프로그램이라면 아래와 같이 GCC로 컴파일할 수 있습니다 - gcc test.c 하지만 해당 영역에 C++ 파일
우리는 서로 다른 시간에 gcc 및 g++ 컴파일러를 사용합니다. 여기에서 우리는 gcc와 g++의 차이점을 볼 것입니다. gcc는 GNU C 컴파일러이고 g++는 GNU C++ 컴파일러입니다. 주요 차이점은 아래와 같습니다 - gcc는 *.c 또는 *.cpp 파일을 각각 C 및 C++로 컴파일할 수 있습니다. g++는 *.c 및 *.cpp 파일도 컴파일할 수 있지만 둘 다 C++ 파일로 사용할 수 있습니다. g++를 사용하여 개체 파일을 연결하려는 경우 STD C++ 라이브러리에 자동으로 연결됩니다. gcc는 그렇게 하지 않습
열거형은 C/C++ 언어의 사용자 정의 데이터 유형입니다. 프로그램을 읽고 유지 관리하기 쉽게 만드는 정수 상수에 이름을 할당하는 데 사용됩니다. enum 키워드는 열거형을 선언하는 데 사용됩니다. 다음은 열거형의 구문입니다. enum enum_name{const1, const2, ....... }; 여기, enum_name − 사용자가 지정한 이름. const1, const2 - 플래그 유형의 값입니다. enum 키워드는 enum 유형의 변수를 정의하는 데에도 사용됩니다. 다음과 같이 enum 유형의 변수를 정의하는 두 가지
여기서 우리는 C++에서 소멸자와 free() 함수의 차이점을 볼 것입니다. 소멸자는 객체가 소멸되기 직전에 어떤 작업을 수행하는 데 사용됩니다. 이 작업은 메모리를 확보하지 못할 수 있지만 화면에 하나의 메시지를 표시하는 것과 같은 간단한 작업을 수행할 수 있습니다. free() 함수는 C에서 사용되며 C++에서는 delete 키워드를 사용하여 동일한 작업을 수행할 수도 있습니다. free() 또는 delete를 사용하여 객체를 삭제하면 소멸자가 호출됩니다. 소멸자 함수는 인수를 취하지 않고 아무 것도 반환하지 않습니다. fre
C++에서 전역 변수를 선언하려면 프로그램을 시작한 후 변수를 선언할 수 있습니다. 함수나 블록 내부에 없습니다. 다른 파일에 저장될 일부 변수를 선언하려면 하나의 파일을 만들고 일부 변수를 저장할 수 있습니다. 일부 외부 파일의 경우 때때로 extern 키워드를 넣어야 합니다. 또한 실제 프로그램 파일과 함께 외부 파일을 포함해야 합니다. 예시 extern int x = 10; extern int y = 20; 예시 #include<iostream> #include"global.cpp" using na
여기서는 C++ 프로그램에서 여러 cpp 파일을 컴파일하는 방법을 살펴보겠습니다. 작업은 매우 간단합니다. 이름을 g++ 컴파일러에 목록으로 제공하여 하나의 실행 파일로 컴파일할 수 있습니다. abc.cpp 및 xyz.cpp와 같은 여러 파일을 한 번에 컴파일하려면 구문은 다음과 같습니다. - g++ abc.cpp xyz.cpp 프로그램을 실행하기 위해 다음을 사용할 수 있습니다 - ./a.out 예시 float area(float r){ return (3.1415*r*r); //area of a circ
sprint() 함수는 C 및 C++에도 있습니다. 이 함수는 문자열 내부에 무언가를 저장하는 데 사용됩니다. 구문은 printf() 함수와 비슷하지만 유일한 차이점은 여기에 문자열을 지정해야 한다는 것입니다. C++에서도 ostringstream을 사용하여 동일한 작업을 수행할 수 있습니다. 이 ostringstream은 기본적으로 출력 문자열 스트림입니다. 이것은 sstrem 헤더 파일에 있습니다. 사용 방법을 알아보겠습니다. 예시 #include<iostream> #include<sstream> usin
C++과 Java에는 상속이라는 개념이 있습니다. 상속 속성은 코드를 재사용하고 두 개체 간의 관계를 만드는 데 사용됩니다. 여기에서 C++의 상속과 Java의 상속 간의 몇 가지 기본적인 차이점을 볼 수 있습니다. Java에서 모든 클래스는 Object 클래스를 확장합니다. 따라서 항상 단일 수준의 클래스 상속 트리가 있습니다. 개체 클래스는 트리의 루트에 있습니다. 간단한 코드를 사용하여 이것이 사실인지 아닌지 확인해보자. 예시 //This is present in the different file named MyCla
C++ 또는 Java에서는 static 키워드를 얻을 수 있습니다. 그것들은 대부분 동일하지만 이 두 언어 사이에는 몇 가지 기본적인 차이점이 있습니다. C++의 정적과 Java의 정적 간의 차이점을 살펴보겠습니다. 정적 데이터 멤버는 기본적으로 Java와 C++에서 동일합니다. 정적 데이터 멤버는 클래스의 속성이며 모든 개체에 공유됩니다. 예시 public class Test { static int ob_count = 0; Test() { ob_
C 또는 C++에서는 함수에서 둘 이상의 값을 반환할 수 없습니다. 여러 값을 반환하려면 함수와 함께 출력 매개변수를 제공해야 합니다. 여기에서 C++에서 튜플과 쌍 STL을 사용하여 함수에서 여러 값을 반환하는 또 다른 접근 방식을 볼 수 있습니다. Tuple은 요소 컬렉션을 보유할 수 있는 개체이며 각 요소는 서로 다른 유형일 수 있습니다. 쌍은 서로 다른 유형일 수 있는 두 값의 집합을 만들 수 있습니다. 쌍은 기본적으로 두 개의 값만 허용되는 특수한 유형의 튜플입니다. 튜플과 쌍이 작동하는 방법을 볼 수 있는 한 가지
Java 또는 C#에서는 final 클래스를 사용할 수 있습니다. 마지막 클래스는 특수 유형의 클래스입니다. 다른 클래스를 생성하기 위해 해당 클래스를 확장할 수 없습니다. C++에는 그러한 직접적인 방법이 없습니다. 여기서 우리는 C++에서 최종 클래스를 시뮬레이션하는 방법을 볼 것입니다. 여기에서 MakeFinalClass(기본 생성자는 private임)라는 추가 클래스를 하나 생성합니다. 이 함수는 우리의 목적을 해결하는 데 사용됩니다. 기본 클래스 MyClass는 친구 클래스이므로 MakeFinalClass의 생성자를 호출
여기서 우리는 C++에서 명시적 키워드의 효과가 무엇인지 볼 것입니다. 이에 대해 논의하기 전에 하나의 예제 코드를 보고 그 출력을 알아보겠습니다. 예 #include <iostream> using namespace std; class Point { private: double x, y; public: Point(double a = 0.0, double b = 0.0) : x(a), y(b) { &nb
여기서 우리는 소멸자가 C++에서 private인 경우의 경우를 볼 것입니다. 아이디어를 얻을 수 있는 몇 가지 예제 코드를 살펴보겠습니다. 이 코드에는 전용 소멸자가 있지만 개체가 생성되지 않으므로 오류가 발생하지 않습니다. 예시 #include namespace std;class my_class { private:~my_class(){ //개인 소멸자 }};int main() {} 사용 이 프로그램에서는 하나의 개체를 만들려고 하므로 컴파일 오류가 발생하지만 컴파일러는 소멸자에 액세스할 수 없음을 알 수 있습니다. 따라
C++에서는 함수를 오버로드할 수 있습니다. 일부 기능은 일반 기능입니다. 일부는 상수 유형 함수입니다. 상수 함수와 일반 함수에 대한 아이디어를 얻기 위해 하나의 프로그램과 그 출력을 보겠습니다. 예시 #include <iostream> using namespace std; class my_class { public: void my_func() const { cout << "Cal
C++에서는 함수 오버로딩을 사용할 수 있습니다. 이제 main() 함수도 오버로드할 수 있다는 질문이 떠올랐습니다. 아이디어를 얻을 수 있는 하나의 프로그램을 살펴보겠습니다. 예시 #include <iostream> using namespace std; int main(int x) { cout << "Value of x: " << x << "\n"; return 0; } int main(char *y) {
여기서 우리는 일부 네임스페이스를 확장하는 방법과 이름이 없거나 익명의 네임스페이스를 사용하는 방법을 볼 것입니다. 때때로 우리는 하나의 네임스페이스를 정의할 수 있습니다. 그런 다음 동일한 정의로 네임스페이스를 다시 작성할 수 있습니다. 첫 번째 멤버에 일부 멤버가 있고 두 번째 멤버에 다른 멤버가 있으면 네임스페이스가 확장됩니다. 해당 네임스페이스의 모든 구성원을 사용할 수 있습니다. 예시 #include <iostream> using namespace std; namespace my_namespace {