带有数组 SV.showVales(set2_1, SIZE2_1) 的简单头文件

Simple Header File with Array SV.showVales(set2_1, SIZE2_1)

本文关键字:SIZE2 简单 文件 showVales SV set2 数组      更新时间:2023-10-16

我纠正了这个错误,但我真正想做的是从头文件中获取数据,而不是在主函数中使用数据。谢谢

我是这个网站的新手,但想就如何重新排列这些文件提供一些建议。

这是头文件:

#ifndef Prog_7_15_h
#define Prog_7_15_h
class Prog_7_15
{
private:
//Originally const int and int set2_1[8] were in private
public:
Prog_7_15();
void showValues2(int [], int);
const int SIZE2_1 = 8;
const int SIZE2_2 = 5;
int set2_1[8] = { 5, 10, 15, 20, 25, 30, 35, 40 }; // Not SIZE2_1  8
int set2_2[5] = { 2, 4, 6, 8, 10 };
~Prog_7_15();
};
#endif // !Prog_7_15

这是Prog_7_15.cpp文件:

#include <iostream>
#include "Prog_7_15.h"
using namespace std;
Prog_7_15::Prog_7_15() { }
void Prog_7_15::showValues2(int num[], int size)
{
for (int index = 0; index < size; index++)
cout << num[index] << "t";
cout << endl;
}
Prog_7_15::~Prog_7_15() { }

这是主要思想.cpp

#include <iostream>
#include "Prog_7_15.h"
using namespace std;
void showValues(int[], int);
int main()
{
Prog_7_15 SV;
const int SIZE1 = 8;  //This part works!
const int SIZE2 = 5;
int set1[SIZE1] = { 5, 10, 15, 20, 25, 30, 35, 40 };
int set2[SIZE2] = { 2, 4, 6, 8, 10 };
showValues(set1, SIZE1);
showValues(set2, SIZE2);
SV.showValues2( set1, SIZE1 );  // work!  
//Played around with int [], int and just  int, int and ()
SV.showValues2(set2_1, SIZE2_1);  //Does NOT WORK
return 0;
}
void showValues(int nums[], int size)
{
for (int index = 0; index < size; index++)
cout << nums[index] << "t";
cout << endl;
}

我想找出为什么 main 函数有效,但头文件不起作用。任何解释将不胜感激!!

感谢您的帮助。我修复了它,但我真正想要的是使用头文件中的数据。

SV.showValues2(set2_1, SIZE2_1);  //Does not Work Data in the Header File
SV.showValues2(set1, SIZE1); //Works!

set2_1,SIZE_1在头文件中,我正在尝试只将函数放在主函数中。

再次感谢

首先,你的showValues2函数需要成为你的Prog_7_15类的一部分。

由此:

void showValues2(int num[], int size)
{
for (int index = 0; index < size; index++)
cout << num[index] << "t";
cout << endl;
}

对此:

void Prog_7_15::showValues2(int num[], int size)
{
for (int index = 0; index < size; index++)
cout << num[index] << "t";
cout << endl;
}

你的构造函数和解构函数在语法上是正确的,所以我假设你只是忘记了这一点!

接下来,这一行:

SV.showValues2( int [],int );

虽然这些是Prog_7_15showValues2想要的类型,但您需要传入这些类型的变量才能使其正常工作。您之前使用showValues正确操作!showValues2是类函数不会改变该函数接受参数的方式。

修复:

SV.showValues2(set1, SIZE1);

因此,该问题已更新为如何使用Prog_7_15的set2_1(或set2_2)和SIZE2_1(或SIZE2_2)。

这些变量在头文件中并不重要;你只需要记住包含所述头文件。阻止你的是你的变量是Prog_7_15的一部分。

在创建Proj_7_15的对象之前,不能使用set2SIZE2变量。 幸运的是,您已经在此行中使用了SV

Prog_7_15 SV;

现在,您可以通过对象SV访问Prog_7_15的所有(公共)函数和变量。

要访问类的函数和变量,您需要做的就是在您创建的对象后放置一个.。您可以看到类函数 showValues2 以这种方式工作。

例如,如果你想在函数中使用变量set2_1,你需要做的就是像这样写它:

random_function_name(SV.set2_1);

我希望这有所帮助。