gpt4 book ai didi

C++ 在非成员函数中无效使用 'this'

转载 作者:太空宇宙 更新时间:2023-11-04 15:45:08 25 4
gpt4 key购买 nike

<分区>

我有错误“在非成员函数中无效使用‘this’

避免此错误的正确代码编写方法是什么。

树.h:

#ifndef TREE_H
#define TREE_H

template <typename T>
class Node;

class Tree
{
public:
Tree();

template <typename TNodeType>
Node<TNodeType> elaborate(Node<TNodeType> &node);

Tree* self();

void doSomething();
};

template <typename TNodeType>
Node<TNodeType> createNew() {
Node<TNodeType> model(this); //<-- ERROR HERE
return model;
}

#endif // TREE_H

节点.h:

#ifndef NODE_H
#define NODE_H

#include <tree.h>

template <typename TNodeType>
class Node
{
public:
Node(Tree *tree);

TNodeType current();

private:
Tree *_tree;
};

template <typename TNodeType>
Node<TNodeType>::Node(Tree *tree):
_tree(tree)
{
_tree->doSomething();
}

template <typename TNodeType>
TNodeType Node<TNodeType>::current()
{
//some code here
}

#endif // NODE_H

已解决。

tree.h 中,我跳过了以下声明:

template <typename TNodeType>
Node<TNodeType> createNew();

而且我忘记了“createNew()”之前的定义“Tree::

我同意这个问题本可以避免 ;-)。抱歉

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com