How cast C++ class to intrinsic type

前端 未结 2 379
清歌不尽
清歌不尽 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:39
    class sType
    {
    public:
        operator int() const { return val; }
    
    private:
        int val;
    };
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题