How cast C++ class to intrinsic type

前端 未结 2 381
清歌不尽
清歌不尽 2021-01-18 13:01

Basic C++ class question:

I have simple code currently that looks like something like this:

typedef int sType;
int array[100];

int test(sType s)
{
          


        
2条回答
  •  粉色の甜心
    2021-01-18 13:43

    class sType
    {
      public:
        operator int() const
        {
          return val;
        }
        int val;
    };
    

    To make s = 5 work, provide a constructor that takes an int:

    class sType
    {
      public:
    
        sType (int n ) : val( n ) {
        }
    
        operator int() const
        {
          return val;
        }
        int val;
    };
    

    The compiler will then use that constructor whenever it need to convert an sType to an int.

提交回复
热议问题