构造函数作为类成员的对象c ++

时间:2016-04-19 16:55:31

标签: c++ object header-files eigen

我有一个Data类,其中包含来自Eigen Template Library的VectorXf对象。这个vector对象有一个构造函数,它接受一个int来定义要分配的内存量。但是,在编译时不知道这个数字。

无论如何,我要做的是在我的Data类头文件中声明VectorXf对象,然后在构造Data对象期间构造该VectorXf对象。我是c ++的新手,所以我对如何做到这一点感到困惑。我一直收到错误消息undefined reference to Data::vector(int)我做错了什么?

以下是我的Data类的头文件Data.h

#ifndef DATA_H
#define DATA_H
#include <Eigen/Eigen>
using namespace Eigen;
using namespace std;

class Data
{
    public:
        Data(string file);
        virtual ~Data();
        void readFile(string file);

    private:
        VectorXf vector(int n);

};

#endif // DATA_H

因此,正如您从上面的头文件中看到的那样,data对象包含一个以整数作为参数的向量对象。

以下是Data.cpp文件:

#include "Data.h"
#include <iostream>
#include <string>
#include <Eigen\Eigen>
#include<fstream>

using namespace Eigen;
using namespace std;


Data::Data(string file)
{
    readFile(file);

}

void Data :: readFile(string file){

    int n = ... // read file length using fstream
    vector(n); //construct the VectorXd object that was declared in Data.h

}   

Data::~Data()
{
    //dtor
}

为清楚起见,我的主要功能需要发生什么:

   Data data("myfile.txt")

创建一个Data对象。然后读取文件长度,因为Data构造函数调用readFile(),它确定构造VectorXf类成员的Data对象的适当长度。在这种情况下,引用和构造类成员对象的正确方法是什么 - VectorXf vector

0 个答案:

没有答案