我想在我的.h中声明一个指针并在.cpp中初始化它。例如一个int指针:
我的.h类文件:
#pragma once
#include <iostream>
#include <stdio.h>
#include <stdint.h>
using namespace std;
class Calc_ToF_low
{
private:
int telo[3];
public:
Calc_ToF_low(void);
~Calc_ToF_low(void);
double * CalcToF(int16_t * señal, int fs);
long double * filter(long double *ganancias, long double *coeficientes, double *señal,int lensignal, int L, int control);
void signal_p1_lowf(void);
void avg_p1_lowf(void);
void time_est();
};
我的.cpp类文件:
#include "Calc_ToF_low.h"
Calc_ToF_low::Calc_ToF_low(void)
{
telo[3]={0,1,2};
}
我该怎么做?
答案 0 :(得分:2)
像这样:
Calc_ToF_low::Calc_ToF_low() // note no need to say void in C++
{
telo[0]=0;
telo[1]=1;
telo[2]=2;
}
或者如果你可以使用C ++ 11,这样的东西可能会起作用:
Calc_ToF_low::Calc_ToF_low()
: telo{{0,1,2}} // initializer list, will not work in "old" C++98
{}
答案 1 :(得分:1)
您只需键入以下内容即可为其指定值:
telo[0] = 0;
telo[1] = 1;
telo[2] = 2;
在你的.cpp。
它可能不适合大型数组,但您可能应该从文件中分配值。
答案 2 :(得分:0)
这是你可以做到的一种方式:
#include <array>
class Calc_ToF_low
{
private:
std::array<int, 3> telo;
public:
Calc_ToF_low();
};
Calc_ToF_low::Calc_ToF_low()
: telo()
{
for(unsigned i = 0; i<telo.size(); ++i)
telo[i] = i;
}
答案 3 :(得分:0)
如果您使用所有项目的常量值初始化大型数组,则可以使用此方法:
Calc_ToF_low::Calc_ToF_low(){
memset(telo, 0, sizeof(telo)); //0 is the constant value
}
如果要将大型数组初始化为某些没有模式的值:
int defaultTeloData[TELO_NUMITEM] = {2,4,1,5,6,1,7,82,41,6,134,88,1};
Calc_ToF_low::Calc_ToF_low(){
memcpy(telo, defaultTeloData, sizeof(telo));
}
如果数组值有模式,请使用循环和一些公式或构造函数。
Calc_ToF_low::Calc_ToF_low(){
for(int a = 0; a sizeof(telo)/sizeof(telo[0]); a++){
telo[a] = dataFormulaForTelo(a);
}
}