c_cpp 检查类指针是否为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 检查类指针是否为空相关的知识,希望对你有一定的参考价值。

#include <iostream>

//null pointer example

//base class
class Base
{
  private:
  int type;
  Base* next;
  Base* prev;
  public:
  ~Base()
  {
    delete next;
    delete prev;
  }
  int getType()
  {
    return type;
  }
  
  void setType(int t)
  {
    type = t;
  }
  //gets the next element
  Base* getNext()
  {
    return next;
  }
  
  //is null method
  bool nextIsNull()
  {
    return next == NULL;
  }
};

class IntObj: public Base
{
  public:
  long value;
  //constructor with init list
  IntObj(long val): value(val)
  {
    setType(3);
  }
  
  long getValue()
  {
    return value;
  }
  
  void setValue(long value)
  {
    value = value;
  }
};



int main() {
  Base* b = new IntObj(8);
  std::cout << b->getType() << "\n";

  //static cast needed for down casting
  IntObj* i = static_cast<IntObj*>(b);
  //or a reinterpret_cast 
  IntObj* j = reinterpret_cast<IntObj*>(b);
  j->setValue(999);
  std::cout << j->nextIsNull() << "\n";
  delete j;
}

以上是关于c_cpp 检查类指针是否为空的主要内容,如果未能解决你的问题,请参考以下文章

检查指针是不是为空,然后在同一个 if 语句中取消引用它是不是安全?

c_cpp 检查/断言类是否具有给定签名的方法。

c_cpp 给出链表,使得每个节点包含一个附加的随机指针,该指针可以指向列表中的任何节点或为空。返回

是否可以将对象设置为空?

cppcheck 空指针取消引用:m_buffer - 否则检查它是不是为空是多余的

java中判断对象中某个属性是否为空