小编jas*_*xia的帖子

如何定义一个指针强制转换运算符?

我正在尝试包装一个对象,并希望将其作为指向函数的指针传递。已知该对象可以强制转换为有限类型,而我想为这些类型提供强制转换运算符。例如:

class MyInt {
  public:
    MyInt() {}
    MyInt(int val): int32_storage_(val), int64_storage_(val*2) {}

    const int32_t* GetInt32Ptr() const { return &int32_storage_; }
    const int64_t* GetInt64Ptr() const { return &int64_storage_; }

  private:
    int32_t int32_storage_ = 0;
    int64_t int64_storage_ = 0;
};


int32_t int32_add(const int32_t* iptr_a, const int32_t* const iptr_b) {
  return *iptr_a + *iptr_b;
}

int64_t int64_add(const int64_t* iptr_a, const int64_t* const iptr_b) {
  return *iptr_a + *iptr_b;
}


int main() {
  MyInt a(10);
  MyInt b(20);

  std::cout << "32bit a + b = …
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
2
解决办法
97
查看次数

标签 统计

c++ ×1