class Trie
{
public:
bool isLeaf;
Trie* character[CHAR_SIZE];
// Constructor
Trie()
{
this->isLeaf = false;
for (int i = 0; i < CHAR_SIZE; i++)
this->character[i] = nullptr;
}
void insert(std::string);
bool deletion(Trie*&, std::string);
bool search(std::string);
bool haveChildren(Trie const*);
};在这里,Trie*&和Trie**的意思是一样的吗?
发布于 2020-08-15 05:43:01
不,它们是不一样的。Trie*&是指向(Trie-)指针的引用,Trie**是指向(Trie-)指针的指针。为了说明不同之处,请考虑以下内容:
void test_a(int*& refToPtr)
{
refToPtr = new int();
*refToPtr = 123;
}要使用int**实现相同的功能,您的函数将如下所示:
void test_b(int** ptrToPtr)
{
*ptrToPtr = new int();
**ptrToPtr = 123;
}需要记住的一个区别是,您可以在本地更改ptrToPtr (这样您就可以更改ptrToPtr指向的指针变量)。使用refToPtr作为引用,不可能在本地更改refToPtr引用的指针变量。
发布于 2020-08-15 04:01:46
不,它们是不一样的。
这里的
*&和Trie**的意思是一样的吗?
Trie*&:是对pointer.Trie**:的引用,是指向指针的指针。有关更多信息,您可以查看
https://stackoverflow.com/questions/60124234
复制相似问题