template <typename T>
class Node {
private:
T data;
Node<T> * next;
public:
Node(T _data, Node<T> * _next): data(_data), next(_next){}
T get_data() const {
return this->data;
}
Node<T> * get_next() const {
return this->next;
}
void set_data(T data) {
this->data = data;
}
void set_next(Node<T> * next) {
this->next = next;
}
};
にメンバ関数を呼び出します。私は、コンソールのプリントにこのerrerをコンパイルしようとするとC++ - 今私は逆参照オブジェクトポインタに「set_next()」関数を呼び出すようにしようと間接参照オブジェクトポインタ
Node<T> new_element(element, NULL);
Node<T> * tmp = this->get_last(); // returns a pointer to the last element
*tmp.set_next(&new_element);
メッセージ:
error: request for member ‘set_next’ in ‘tmp’, which is of pointer
type ‘Node<int>*’ (maybe you meant to use ‘->’ ?)
*tmp.set_next(&new_element);
コンパイラがなぜ ' - >'を使用するのかわかりません。パブリックメンバー関数を呼び出すための完璧な方法です
は、しかし、私が入れたとき:
error: void value not ignored as it ought to be
*tmp->set_next(&new_element);
私はそれが何を意味するのか理解していない、誰かが私を助けることができます。
Node<T> new_element(element, NULL);
Node<T> * tmp = this->get_last();
*tmp->set_next(&new_element);
が、私はこれを取得しますか?
を使用することができます答えてくれてありがとう! – cmplx96
オブジェクトへのポインタで関数を呼び出すときには、 - >を使いポインタを自動的に逆参照しますか? – cmplx96
' - >'はポインタを逆参照し、メンバにアクセスします。 '()'はメソッドを呼び出します。 – mch