我定义了一个类以及成员函数。现在我想调用从外部导入的数据类型(x.dat)。 我怎么能这样做?
这将是这样的:
class abs{
private:
...
public:
...
void function(data){ //here i would like to use the external data x.dat
...
}
}
答案 0 :(得分:1)
是的,基思是对的。
您想要的是一个静态变量,它在该类型的所有对象上维护相同的数据。你不一定需要一个功能来做到这一点。
#include <iostream>
#include <string>
using namespace std;
class abs
{
private:
public:
static double data[3];
};
double abs::data[3]={}; //instantiate the variable
int main () {
abs::data[0]=5.0;
cout<<abs::data[0]; //outputs 5
}
静态变量与类定义相关联,而不是与该类型的实例化对象相关联,因此只要程序处于活动状态,它就会作为类的一部分存储在内存中。
答案 1 :(得分:0)
首先,非常感谢你们所有人,特别是@Mir 我现在开始跑,虽然我不知道为什么有人给我一个否定的消息!?
我想在这里为自己和未来的读者做一个总结。
我的问题是:
我有一个存储的数据(double [1000]),这是一个'x.dat'的文件;
我在头文件中定义了一个类'abs',以及它的成员函数'function';
'function'希望将数据作为输入参数调用。 怎么做?
在Mir的帮助下,它现在正在这样工作,希望它可以帮助某人:
1.abs.h
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class abs
{
private:
public:
static double data[1000];
double function(double xa[]){
for(int i=0;i<1000;i++){
res += xa[i] * 2.0;
}
return res;
}
};
2.abs.cpp
#include "abs.h"
double abs::data[1000]={}; //instantiate the variable
3.main.cpp
#include "abs.h"
int main () {
abs a = abs();
for(int i = 0; i < 1000, i++){
ifstream fs("x.dat")
fs >> abs::data[i];
cout << abs::data[i]; //outputs all data
}
double Value = a.function(data);
cout<< Value<<endl;
}