我有2个课程Point
和Vector
。
我正在从包含一些点的文件中读取输入,并且必须从这些点构造一些向量。
例如,我文件的前三行如下:
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/