从类中调用C ++类方法

时间:2011-04-19 01:44:20

标签: c++ linked-list method-invocation

我有一个实现链表的类。该类有一个find()方法,如果它存在于链表中,它会找到一个值。我有另一个方法add(),它添加一个节点,但只有在该节点中包含的值不存在于列表中时。

所以我想在add()函数中做的是使用我的find方法而不是测试现有值,因为这就像第二次实现它一样。我的问题是,如何从该类中的另一个方法中调用find方法?

我试着打电话     this.find(x)的

但那给了我错误。

以下是我的一些代码:

// main function
  SLList<int>list;
  list.add(20);
  list.add(14);

// SLList.h (interface and implementation)

template<typename T>
bool SLList<T>::find(const T& val) const {
  // finds value
}


template<typename T>
void SLList<T>::add(const T& x) {
  bool found = this.find(x);
  if (found) return false;

  // goes on to add a node in the Singly Linked list (SLList)
}

所以就像我说的那样,我希望能够从该类中的另一个方法中调用find方法,我认为我必须做的就是引用调用对象,然后调用它的find方法,但正如我所说,这给了我一堆错误。

任何人都可以帮我解决这个问题,谢谢!

2 个答案:

答案 0 :(得分:4)

只需致电find(x)即可。不需要这个。此外,this是指向当前对象的指针。所以你必须做this->find(x)

答案 1 :(得分:1)

this是一个指针,如果你想使用它,它应该是以下任何一种方式:

this->find(x);
(*this).find(x);
find(x);

旁注,您的函数SLList<T>::add(const T& x)应该返回bool(而不是void)。