在C++中有什么方法可以调用构造函数

What ways are there to call a constructor in C++?

本文关键字:调用 构造函数 方法 什么 C++      更新时间:2024-09-23

//我有一个for循环,它应该构造一个特定类的数组"行";来自两个浮动阵列

for (int i=0; i<length; i++) Linearray[i](a[i], b[i]);

//我的行构造函数是:

pine::pine(float a, float b) {
st = a;
e = b;
}

//我得到的错误是我没有定义呼叫接线员
//解释起来有点复杂,所以我只能用这个构造函数来填充那个数组。//还假设数组a和b充满了浮点。

Linearray[i](a[i], b[i]);尝试从该列表中第i个元素的Line类(可能尚未定义,因此出现错误(中调用调用运算符operator()()(另请参阅C++函子及其用途是什么?(。您需要分配一个新实例来调用那里的构造函数:

Linearray[i] = Line(a[i], b[i]);

尽管Timo已经回答了您的问题。以下是实现相同目标的另一种方法

#include <iostream>
using namespace std;
class Line{
private:
int start, end;
public:
Line(){}
Line(float a, float b) {
start = a;
end = b;
}
};

int main() {
std::cout << "Hello World!n";
int N = 5;
Line * arr = (Line*)malloc(sizeof(Line) * N);
for(auto i=0; i<N; i++){
arr[i] = Line(5,6);
}
}