【发布时间】:2020-05-19 21:20:55
【问题描述】:
我目前正在尝试创建一个程序,通过将数组传递给类的成员函数来计算具有给定时间值的火箭的质量。我想为数组使用指针。我该怎么做。指针应该在 int main 还是类中初始化。任何建议表示赞赏。
#include <cmath>
#include <cstring>
#include <fstream>
#include<iostream>
using namespace std;
class equip
{
public:
double mass[999999999], velocity, height, *time[999999999];
double calcmass(double* time);
double calcvelocity();
double calcheight();
double calctime();
private:
double T = 7000;
double g = 32.2;
double K = 0.008;
};
double equip::calcmass(double* time)
{
int i = 0;
for(i=0; i=999999999; i++)
{
return mass[i] = (3000 - 40 * time[i]) / g;
}
}
int main()
{
int i = 0;
equip rocket;
ifstream infile;
string filename;
cout<<"Enter input file name for time values: ";
cin>>filename;
infile.open(filename.c_str());
while(infile.fail())
{
cerr<<"Error opening file. \n";
cout<<"Enter file name: ";
cin>>filename;
infile.open(filename.c_str());
}
for(i=0; i<999999999; i++)
{
infile>>rocket.time[i];
}
for(i=0; i<999999999; i++)
{
cout<<rocket.mass[i];
}
return 0;
}
【问题讨论】:
-
忘记 C 样式数组的存在,不再考虑或使用它们。使用
std::array或std::vector代替它们,您的生活会简单得多。 -
欢迎来到 SO!请详细说明您发布的代码如何按预期工作。你得到什么输出,你想要什么?
-
正如@JesperJuhl 所说,那些大型的堆栈分配数组(
mass和time)几乎肯定不是您想要做的。如果它们的大小可以改变,则使用std::vector,如果它们的大小在编译时已知,则使用std::array。 -
double mass[999999999]!!!! -
为什么是
times指针?