关于引用如何工作的小混淆。 如果我有一个引用,我可以访问成员方法和变量吗?它不应该与指针相同吗?我可以将引用转换为指针吗?
问题在于从SELECT A.commentid AS comment_num, A.content AS Content, count(B.commentid) as replies_count
FROM comment A
LEFT JOIN replies B on A.commentid=B.commentid
GROUP BY A.commentid, A.content
进一步
getName()
错误是:
“template <typename T>
bool BSTree<T>::insert(BSTNode<T>* currentnode, T* data) {
std::string value = data -> getName();
std::string current = currentnode -> getData() -> getName();
return false;
}
的基本操作数具有非指针类型->
”
如果我尝试使用属于对象Object
的{{1}}方法返回(通过引用),那么为什么它不像上一行一样工作?在我以前的程序中,通过类似于getName()
的方法返回对象工作得很好。
答案 0 :(得分:2)
如果getData()
正在返回引用,那么您将使用:
std::string current = currentnode->getData().getName();
通常,->
取消引用指针,不要将它与引用一起使用。
答案 1 :(得分:1)
&#34;如果我尝试使用getName()方法,该方法是getData返回的对象(通过引用)&#34; ...
我们无法看到getData
是如何声明的,但很有可能它会返回一个引用(而不是一个指针)因此你应该使用.
而不是->