c++ - *this = NULL 在模板类的方法中意味着什么?

标签 c++ templates null this

在模板类中,我发现了表达式,*this = NULL 这样的表达式是什么意思?

其定义如下:

TYPE** getPtr() 
{
 *this = NULL;
 return &m_pPtr;
}

其中 m_pPtr 是模板类中的 TYPE*​​ 类型。

赋值运算符:

// Assignment operator.
TYPE* operator =(TYPE *pPtr) {
  if (pPtr == m_pPtr)
    return pPtr;

  m_pPtr = pPtr;

  return m_pPtr;
}

毗湿奴。

最佳答案

在没有看到实际代码的情况下,很难说出这样一个语句的意义所在。

但它可能会调用重载的赋值运算符。例如:

#include <iostream>

class X {
public:
    void operator=(void *) {
        std::cout << "Here!\n";
    }

    void foo() {
        *this = NULL;
    }
};


int main() {
    X x;
    x.foo();
}

关于c++ - *this = NULL 在模板类的方法中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796575/

相关文章:

c++ - 如果默认可构造,则默认参数

php - 为什么 PDO 将空白值视为空值?

c# - 什么相当于C#中的map of maps

c++ - 在函数模板中使用 lambda,无法推断类型,makeSet() 用例

c++ - 递归函数中的段错误

c++ - 下标字符串文字

c++ - 未找到符号 C++ 打印 vector 到控制台

c++ - 编译器模板实现会引入循环依赖吗?

MySQL:当所有字段都为NULL时如何返回空记录?

java - FontMetrics 生成 NullPointerException