我在QT项目中,在Mainwindow类中定义了一个自定义的类
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots:
void getImgSlot();
void testSlot();
private:
Ui::MainWindow *ui;
typedef pcl::PointXYZ PointT;
double errorMatMode[12] = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 };
Mat errorMat = Mat(3, 4, CV_64F, &errorMatMode);
c_stereo StereoSyStem;
};
就是这个c_stereo StereoSystem
在这个自定义类中,构造函数会读取一个文件,并将文件的数据读取到c_stereo这个类中,用成员函数存储。为了测试是否读取成功,我先把成员函数设置为public了。
但问题出现了,我在mainWindow.cpp当中输出StereoSystem的成员函数,结果都是0。我返回到c_stereo类的构造函数中,加了个输出代码,程序输出成功。
也就是说,构造函数没问题,结果保存到c_stereo的成员函数中去了。但却在Mainwindow.cpp中丢掉了。不知道是不是Mainwindow这个类的特性问题,因为类似的操作,我在纯C++项目中,用VS复现了一遍,输出是没有问题的。
即:
类1:
public:
int a=10;
类2:
类1 类名;
cout<<类名.a;
这个操作,在VS中的纯C++项目中,输出结果为10;
但在QT中,输出为0;
这是Mainwindow函数中的输出代码
这是类的构造函数中的输出代码
这是输出结果,只有构造函数中的输出,但mainwindow中的输出就全是0
不知道你怎么写的,肯定是没有问题的。