当前位置: 代码迷 >> C++ >> 一个种在另一个类中调用,求指导
  详细解决方案

一个种在另一个类中调用,求指导

热度:5120   发布时间:2013-02-26 00:00:00.0
一个类在另一个类中调用,求指导
现在遇到一个比较初级的问题,还望版上的大神能够不吝赐教!
现在我在Qt上开发一个界面,不过总的来说还是一个类,所以这个问题就归结为在一个类中调用另外一个类
问题如下:
首先
class cameraGet : public QMainWindow
{
    Q_OBJECT
    
public:
    //定义PTZ摄像机控制参数
    VISCA_Cam * Cam1;
    VISCA_Timer2* tm1;
}

这里简化了代码,主要就是定义了这么两个类
然后再构造函数中进行了new,代码如下:
cameraGet::cameraGet(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::cameraGet)
{
    ui->setupUi(this);
    timer   = new QTimer(this);
    imag    = new QImage();   // 初始化
    //initialize the PTZ protocol
    tm1= new VISCA_Timer2;       //
    DWORD result;
    char*  nPortc="COM1";
    Cam1 =new VISCA_Cam(nPortc,1,1,result);     //打开串口
}

上述代码也经过简化,主要就是对定义的两个类进行了new,但是后面貌似这个没有new好,出现了
“底层由于接收到操作系统的信号而停止”
这个错误提示,网上搜了下好像类没有定义好之类的,那么相对于我这个代码而言,只有这两个类有问题,所以还请各位帮忙看看,非常感谢!!

------解决方案--------------------------------------------------------
只要你有包含你需要调用的类的头文件 在哪里都能构造该类的对象啊、、另外一种可能就是 你调用的那个累的构造函数是私有的也就是C++的单例模式、这样的话是不能调用构造函数的..其他我就想不到了 呵呵!
------解决方案--------------------------------------------------------
这个跟类互相调用应该没什么关系, 你直接调用如下代码: 
void test() {
    VISCA_Cam * Cam1 = new VISCA_Cam(nPortc,1,1,result);
}

重现问题, 再debug进去看一下, 哪一行代码导致异常抛出? 
------解决方案--------------------------------------------------------
楼主说的不成功具体指什么, 我猜是下面这句返回false了,对吗?
com->connect(newPort, 9600, SERIAL_PARITY_NONE, 8, false);

引用:
引用:VISCA_Cam的代码呢?
没这个没法看
C/C++ code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686……
  相关解决方案