我很困惑如何打印aVect和bVect中的所有元素。根据我的理解,在int main的内部浮动FloatArray1包含10个点,这些点都填充了它旁边的{}内的数字。然后,该数组和数组大小(10)将被传递到名为aVect的类对象中。 我感到困惑的是,当没有任何内容传递给void printElement函数时,我将如何打印aVect中的元素?从我所学的数组,如果它是像
int array[5] = {1,2,3,4,5}
for (int i =0; i < 5; i++)
{cout << array[i] << endl;}
但那只会起作用,因为它直接在相同的代码范围内。在下面的代码中,printElements函数将用于aVect和bVect,因此它不能通过引用专门传递,并且不能像上面那样完成。任何人都可以帮我试试这个吗?几乎学习了类和函数的基础知识。
class FloatVectArray {
public:
void printElements(); // prints all elements in the vector
private:
float *vector; // the vector
int vectorsize; // size of the vector
void FloatVectArray::printElements()
{
for (int i = 0; i < 10; i++)
{
cout << << endl;
}
}
int main() {
// testing the implementation of a float vector using array
// declare & initialize an array of floats and create a float vector aVect
float FloatArray1[10] = { 2.1, 7.2, 3.3, 6.4, 1.5, 43.6,72.7,19.8,39.9, 71.1 };
FloatVectArray aVect(FloatArray1, 10);
cout << "Printing all elements in aVect:" << endl;
aVect.printElements();
// declare & initialize another array of floats and create float vector bVect
float FloatArray2[10] = { 1.1, 2.2, 5.3, 6.4, 1.5, 7.6, 9.7,17.8, 92.9, 42.1 };
FloatVectArray bVect(FloatArray2, 10);
cout << "Printing all elements in bVect:" << endl;
bVect.printElements();
答案 0 :(得分:0)
如果我理解你的问题,那么你所缺少的是因为它的
void FloatVectArray::printElements()
而不是
void printElements()
class FloatVectArray
的成员属于函数体。您只需按名称访问它们:
cout << vector[i] << endl;
如果你真的想要你可以明确地定义成员变量:
cout << FloatVectArray::vector[i] << endl;
但在这种情况下没有必要。
最好相应地调整for循环
for (int i = 0; i < vectorsize; i++)
如果我理解你的话,你的目标就是这种理解课程的东西,但无论如何还有两个提示:
完成的代码供您参考:
#include <iostream>
class FloatVectArray {
public:
FloatVectArray(float* v, int size) :vector(v), vectorsize(size) {};
void printElements(); // prints all elements in the vector
private:
float *vector; // the vector
int vectorsize; // size of the vector
};
void FloatVectArray::printElements()
{
for (int i = 0; i < vectorsize; i++)
{
std::cout << vector[i] << std::endl;
}
}
int main(int argc, const char * argv[]) {
// testing the implementation of a float vector using array
// declare & initialize an array of floats and create a float vector aVect
float FloatArray1[10] = { 2.1, 7.2, 3.3, 6.4, 1.5, 43.6,72.7,19.8,39.9, 71.1 };
FloatVectArray aVect(FloatArray1, 10);
std::cout << "Printing all elements in aVect:" << std::endl;
aVect.printElements();
// declare & initialize another array of floats and create float vector bVect
float FloatArray2[10] = { 1.1, 2.2, 5.3, 6.4, 1.5, 7.6, 9.7,17.8, 92.9, 42.1 };
FloatVectArray bVect(FloatArray2, 10);
std::cout << "Printing all elements in bVect:" << std::endl;
bVect.printElements();
return 0;
}