gpt4 book ai didi

c++ - 声明类变量后调用构造函数

转载 作者:行者123 更新时间:2023-11-28 04:14:22 26 4
gpt4 key购买 nike

我有 2 个类 PointVector

我正在从一个包含一些点的文件中读取输入,我必须从这些点构建一些 vector 。

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

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
}

// ....

现在我想将 vector 构造为 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 类中编写一个函数来设置 vector 坐标,或者通过在 parseInput() 中创建一个临时的 Vector 对象来解决这个问题函数并将其分配给相应的 vector 。但我对使用构造函数很感兴趣。是否可以在声明变量后使用构造函数?

最佳答案

成员在创建对象后立即创建。因此,Vector 的构造函数已在三个成员 vector 中的每一个上被调用。

假设 vector 是可分配的,你可以做的是构建一个临时 vector ,并将其分配给一个成员:

eye = {a, b};

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com