강제 변환 및 메모리

다음 클래스 Fun을 보십시오. 구조 함수와 유형 강제 변환 함수를 포함합니다.

  
  
  
  
  1. class Fun  
  2. {  
  3.     int x;  
  4. public:  
  5.     Fun(){x = 3;}  
  6.     operator int(){return 5;}  
  7. }; 

다음 프로그램 실행하기

  
  
  
  
  1. #include <iostream>  
  2. #include <cstdio>  
  3. #include "fun.h"
  4. using namespace std;  
  5. int main()  
  6. {  
  7.     Fun f;  
  8.     cout << f << endl;// 5  
  9.     printf("%d
    "
    , f);// 3  
  10.     printf("$d
    "
    , (int)f);// 5  
  11.     return 0;  

<<의 호출은 두 번째 파라미터를 int로 강제로 변환하지만 printf의%d는 뒷부분 파라미터의 32위만 읽고 int로 해석합니다.printf를 사용하고 클래스를 호출하는 강제 변환 방법이 필요하면 대상을 형식적으로 강제 변환해야 합니다.

좋은 웹페이지 즐겨찾기