C++의 포드 유형

Zeeshan Afridi 2023년10월12일
C++의 포드 유형

C++의 POD는 Plain Old Data의 약자입니다. struct 또는 class 키워드로 정의된 클래스이며 int, char, double, bool, signed/unsigned, long/short, float 등과 같은 데이터 멤버만 포함합니다.

C++의 포드 유형

아시다시피 POD는 일반적으로 class 또는 struct 키워드로 정의할 수 있는 클래스 및 구조와 같은 내장 데이터 유형이지만 다른 클래스 또는 구조와는 다릅니다. C++의 POD는 생성자, 소멸자, 가상 함수 등을 지원하지 않습니다.

C++의 POD(Plain Old Data)는 POD만 데이터 멤버로 포함하는 집계 클래스 또는 구조입니다. 사용자 정의 복사 할당 연산자 또는 멤버에 대한 포인터 유형의 기타 비정적 멤버를 정의하지 않습니다.

예제 코드:

#include <iostream>
using namespace std;

// POD (Plain Old Data)
struct Add {  // defined with the keyword struct
  int x;
  int y;
};

int main() {
  struct Add a;

  a.x = 1;
  a.y = 2;
  cout << "x = " << a.x << endl << "y = " << a.y << endl;
  cout << "Sum of x and y = " << a.x + a.y << endl;

  std::cout << std::boolalpha;
  std::cout << std::is_pod<Add>::value << '\n';  // this is to check POD,
                                                 // it returns Boolean value
  return 0;
}

출력:

x = 1
y = 2
Sum of x and y = 3
true

이 코드에는 struct 키워드로 정의된 ADD 클래스가 있고 xy라는 두 개의 데이터 멤버가 있습니다. 값은 기본 함수의 클래스 개체를 통해 ADD 클래스 멤버에 전달됩니다.

이러한 값은 추가로 추가되어 cout 문에 출력으로 표시됩니다. 이제 클래스가 준비되었으며 값이 전달됩니다.

POD인지 아닌지 확인하는 시간입니다. is_pod 기능이 여기에 있습니다. 클래스가 POD이면 True를 반환하고 그렇지 않으면 False를 반환합니다.

또한 멤버에 대한 포인터 및 함수에 대한 포인터를 포함하는 포인터는 POD입니다. Enums, const휘발성도 POD입니다.

모든 비정적 데이터 멤버가 public으로 지정되고 가상 함수, 생성자 또는 소멸자 및 기본 클래스가 없는 경우 POD의 struct, class 또는 union도 POD입니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

관련 문장 - C++ Type