问题是变量失去了价值。
变量data.table(df)
firm_id brand_id KEY UNITS DOLLARS DATE place_name
1: 511 263 647840 1 7.29 2001-01-01 NYC
2: 511 265 647840 2 14.58 2001-01-01 NYC
3: 511 265 532733 1 6.39 2001-01-01 Los Angeles
4: 23 417 263939 1 4.79 2001-01-01 Chicago
5: 23 417 648768 5 24.45 2001-01-01 Houston
和selectable_values_array
在searched_array_size
初始化时包含正确的值。
但是当调用find_number::find_number
对象时,变量包含
像-28和4214247这样的值。
作为一个合乎逻辑的结果,samplerate_return只返回垃圾。
那我在这里缺少什么? 有没有一种方法可以在类中安全地传递变量/值?
修改:添加了缩减的MyClass和main。
find_closest
第一堂课:
#include "MyClass.h"
int main()
{
int32_t samplerate_return = 0;
int32_t samplerate_request = 7;
MyClass ADC_1 ();
while(1) {
samplerate_return = ADC_1.select(samplerate_request);
}
}
#ifndef MyClass_H
#define MyClass_H
#include "find_number.h"
class MyClass
{
public:
MyClass();
int32_t select(int32_t the_searched_number);
int32_t the_selected_number;
private:
int32_t Integer_array[];
int32_t Numbers_in_Integer_array;
bool init();
find_number MyNumber;
};
MyClass.cpp
这是“Find_Numbers”类的头文件:
#include "MyClass.h"
MyClass::MyClass()
{
init();
find_number MyNumber;
}
bool MyClass::init()
{
int32_t Integer_array[] = {2,5,10};
Numbers_in_Integer_array = (sizeof(Integer_array)/sizeof(*Integer_array));
find_number MyNumber (Integer_array,Numbers_in_Integer_array);
return 0;
}
int32_t MyClass::select(int32_t the_searched_number)
{
the_selected_number = MyNumber.find_closest(the_searched_number);
return the_selected_number;
}
以及相应的#ifndef find_number_h
#define find_number_h
class find_number
{
public:
//Constructor:
find_number(int32_t *selectable_values,int32_t cells_in_array);
find_number(); // = default;
//Class Objects:
int32_t find_closest(int32_t target_value);
private:
int32_t searched_array_size;
int32_t *selectable_values_array;
};
#endif
find_numbers.cpp