如何从类的功能中调用数据类型

时间:2015-03-06 00:44:32

标签: c++

我定义了一个类以及成员函数。现在我想调用从外部导入的数据类型(x.dat)。 我怎么能这样做?

这将是这样的:

class abs{
private:
...
public:
...
void function(data){     //here i would like to use the external data  x.dat
...
}
}

2 个答案:

答案 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;
    }