我有2个课程PointVector

我正在从包含一些点的文件中读取输入,并且必须从这些点构造一些向量。

例如,我文件的前三行如下:

0.0 0.0 50.0 // point a
0.0 0.0 0.0 // point b
0.0 1.0 0.0 // point c


我正在另一个名为Stages的类中处理输入解析,该类当前看起来像这样:

class Stages{
    int fileLineNumber;
    Point eyePoint,lookPoint,upPoint;
    Vector eye,look,up;

    void parseInput(){
        // parse the 3 points here
    }

    // ....


现在,我想将向量构造为eye = point b - point a,依此类推。我在Vector类中编写了一个对应的构造函数:

Vector(Point p1,Point p2){
            Point diff = p2 - p1;
            x = diff.x;
            y = diff.y;
            z = diff.z;
        }


我的问题是,因为我已经在Stages类中声明了3个向量,所以在解析这些点之后如何调用Vector构造函数?我可以通过在设置矢量坐标的Vector类内编写一个函数或在Vector函数内创建一个临时parseInput()对象并将其分配给相应的矢量的方法来解决。但是我对使用构造函数很感兴趣。声明了变量后可以使用构造函数吗?

最佳答案

创建对象后即创建成员。这样,已经在三个成员向量的每一个上调用了Vector的构造函数。

假设向量是可分配的,您可以做的是构造一个临时向量,并将其分配给成员:

eye = {a, b};

关于c++ - 声明类变量后调用构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56989242/

10-11 22:47
查看更多