【发布时间】:2019-04-14 10:28:45
【问题描述】:
这是我的构造函数代码:
vertex_array(float* &vertex_buffer, std::string& texture_file);
这是我的主要应用程序代码:
float cube1[] = { 0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
0.5f, -0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f };
vertex_array va_1(cube1, "blocks.png");
我收到错误:没有构造函数“vertex_array::vertex_array”的实例与参数列表参数类型匹配:(float[40], const char[11])
我花了大约一个小时来寻找问题,但我找不到代码有任何问题。我什至查看了另一个示例,该示例传递了完全相同的参数类型,但传递给了 const void* 类型的参数,它在该示例上有效,但不适用于我。我的问题是什么?
【问题讨论】:
-
float* &- 为什么? -
正如@JesperJuhl 提到的,您的构造函数接口似乎需要一个输出参数,您将数组传递给而不是指向数组的指针。
-
另外,你想要
const std::string& texture_file -
Jesper Juhl 和 Bo R,参数类型是 float* & 因为我将传入一个指向浮点数组的指针,我很确定数组名称是指向数组第一个索引的指针这是我传入的,然后我将其作为参考,因为我不希望它被复制
标签: c++ types parameters constructor arguments