Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C++;?_C++ - Fatal编程技术网

C++ 在C++;?

C++ 在C++;?,c++,C++,//我有一个for循环,它应该从两个浮点数组构造一个特定类“Line”的数组 for (int i=0; i<length; i++) Linearray[i](a[i], b[i]); //我得到的错误是没有定义呼叫接线员。 //解释起来有点复杂,所以我只能用这个构造函数来填充数组。 //还假设数组a和b充满了浮点数。这线性数组[i](a[i],b[i])尝试从该列表第i个元素的行类(您可能尚未定义该类,因此出现错误)调用调用运算符operator()()(另请参见)。您需要分配一个新

//我有一个for循环,它应该从两个浮点数组构造一个特定类“Line”的数组

for (int i=0; i<length; i++) Linearray[i](a[i], b[i]);
//我得到的错误是没有定义呼叫接线员。
//解释起来有点复杂,所以我只能用这个构造函数来填充数组。 //还假设数组a和b充满了浮点数。

线性数组[i](a[i],b[i])
尝试从该列表第i个元素的
类(您可能尚未定义该类,因此出现错误)调用调用运算符
operator()()
(另请参见)。您需要分配一个新实例来调用那里的构造函数:

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

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

虽然蒂莫已经回答了你的问题。这是实现同样目标的另一种方法

#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);
  }

}
#包括
使用名称空间std;
班级线{
私人:
int开始,结束;
公众:
行(){}
管路(浮子a、浮子b){
开始=a;
结束=b;
}
};
int main(){

虽然蒂莫已经回答了你的问题,但这里有另一种实现同样目标的方法

#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);
  }

}
#包括
使用名称空间std;
班级线{
私人:
int开始,结束;
公众:
行(){}
管路(浮子a、浮子b){
开始=a;
结束=b;
}
};
int main(){

std::cout
std::vector Linearray;对于(…)Linearray.emplace_back(a[i],b[i])
Linearray
是如何定义的?请发布一个。正式地说,你根本不能调用构造函数。当要创建一个对象时,它是代表你调用的。请确切地定义什么是
Linearray
,因为它在上下文中很重要,因为你的意思可能是赋值,而不是典型的构造。@molbdnilo fo你可以,<代码>行实例;实例=行(a,b);< /COD>将是直接调用,导致创建临时对象(所有的问题,为什么认为这是一个构造函数直接调用Bjarne先生)。<代码> STD::向量线性射线;(…)线性射线。
Linearray
是如何定义的?请发布一个。正式地说,你根本不能调用构造函数。当要创建一个对象时,它是代表你调用的。请确切地定义什么是
Linearray
,因为它在上下文中很重要,因为你的意思可能是赋值,而不是典型的构造。@molbdnilo fo你可以,<代码>行实例;实例=行(a,b);< /COD>将是直接调用,导致创建临时对象(所有问题,为什么认为这是一个构造函数直接调用Bjarne先生)。或者使用放置新来避免临时性或使用新的布局来避免临时性的。