所以我被要求为Java中的链表编写#include <iostream>
#include <string>
template <typename T>
void is_string(const T& arg) {
if (std::is_same<T, const std::string&>::value)
std::cout << arg.length() << std::endl;
else
std::cout << "The argument is not a string" << std::endl;
}
int main() {
is_string(0);
return 0;
}
方法。唯一的事情就是我想要的对象&#34;偷看&#34;是一个类型为base的私有变量,它存在于LinkedList类的私有类中。我想使用我的types.cpp: In instantiation of ‘void is_string(const T&) [with T = int]’:
types.cpp:13:13: required from here
types.cpp:7:13: error: request for member ‘length’ in ‘arg’, which is of non-class type ‘const int’
std::cout << arg.length() << std::endl;
方法返回对象并将其打印出来。我知道这与访问私有变量有关,但我无法使其与我所拥有的相结合。以下是我的代码片段:
peek()
提前感谢您的帮助!我真的很感激。
答案 0 :(得分:2)
您应该只返回top
变量。我没有看到它被初始化,但我认为它是一个类变量,因为你没有在你的push方法中初始化它。然后你可以这样做:
public Base peek()
{
if(isEmpty())
{
throw new IllegalStateException("List is empty");
}
return top.object; //this throws an error
}