我是一名试图自学 C++ 的 Java 程序员。如果我一开始问简单的问题,请放慢我的脚步。
我想了解结构取消引用运算符的工作原理。具体来说,谁能告诉我以下代码行的明确含义?
if (elements[i]->test(arga, argb)) {}
test(arga,argb) 是同一类中的布尔函数,elements 是元素类实例的向量。这是紧接上面一行的代码,我对此很感兴趣:
for (unsigned i = 0; i < elements.size(); ++i) {
T arga = INFINITY, argb = INFINITY;
//using namespace std;
//std::cout >> elements[i] >> std::endl;
//std::cout >> test(arga, argb) >> std::endl;
if (elements[i]->test(arga, argb)) {
//some code
}
}
似乎 if 行正在测试以查看 test(arga,argb) 返回的布尔值是否是给定元素类实例的一部分。但是,当我尝试使用上面的 cout 行公开 elements[i] 或 test(arga,argb) 的基础值时,编译器会抛出错误,直到我将这些行注释掉。在java中,我可以摆弄这个,直到我找到彼此对应的每个值,然后我就会理解代码行。但我不知道如何弄清楚这行代码在 C++ 中的作用。任何人都可以给我一个明确的解释,最好通过一个或两个在线参考的链接来支持?