私は独学で C++ を学ぼうとしている Java プログラマーです。最初に簡単な質問をする場合は、少し余裕を持ってください。
構造逆参照演算子がどのように機能するかを理解したいと思います。具体的には、次のコード行が明示的に何をしているのか誰か教えてもらえますか?
if (elements[i]->test(arga, argb)) {}
test(arga,argb) は同じクラスのブール関数で、elements は element クラスのインスタンスのベクトルです。これは、私が興味を持っている上記の行をすぐに囲むコードです。
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++ で何をしているのかを理解する方法がわかりません。誰かが私に明確な説明を与えることができますか?