0

3つのfloatxyz(3D空間の座標)を持つpoint3構造体があります。

point3のインスタンスをいくつか作成してから、リストを作成し、それらのインスタンスをリストにプッシュします。次に、リスト全体に翻訳機能を適用します。

質問:平行移動を適用した後、リスト内のポイントの1つのX座標を印刷して、平行移動関数が希望どおりに機能するかどうかを確認するにはどうすればよいですか?

これが私のコードです:

int main()
{   
    point3 p1 = point3(0.0f, 0.0f, 0.0f);
    point3 p2 = point3(1.0f, 1.0f, 1.0f);
    point3 p3 = point3(2.0f, 2.0f, 2.0f);

    list<point3> myList;
    myList.push_front(p1);
    myList.push_front(p2);
    myList.push_front(p3);

    list<point3> myList2 = translateFact(myList, 1, 1, 1);

    std::cout << myList2.front.x; //<--- This is the line I'm having trouble with
}

//Translates the face by dx, dy, dz coordinates
list<point3> translateFact(list<point3> lop, float dx, float dy, float dz)
{
    list<point3>::iterator iter;

    for (iter = lop.begin() ; iter != lop.end(); iter++){
        point3 p = *iter;
        iter->x - dx;
        iter->y - dy;
        iter->z - dz;
    }
    return lop;
}

myList2.front.xを印刷しようとしたときに受け取るエラーは次のとおりです。

IntelliSense: a pointer to a bound function may only be used to call the function

ですから、私の問題はポインタに関連していると思いますが、その方法はわかりません。最近C++を入手したばかりなので、エラーを診断/修正するためのポインターについて十分に理解していません。

4

1 に答える 1

2

frontメソッドを呼び出すことを示すために括弧が必要です。

std::cout << myList2.front().x;
于 2012-04-18T01:21:22.417 に答える