• 4526阅读
  • 5回复

[讨论]我突然发现现在前置类申明可以直接创建对象了 [复制链接]

上一主题 下一主题
离线smallcsduck
 

只看楼主 倒序阅读 楼主  发表于: 2016-04-21
不知道是不是c++标准改变了
以前不是前置申明 只能用指针和引用么?
下面这么写在vs2015一点问题没有


#include <QtWidgets/QMainWindow>
#include "ui_qtopencv2.h"


class QString;
class QImage;
class QPixmap;

namespace cv
{
    class Mat;
}

class qtopencv2 : public QMainWindow
{
    Q_OBJECT

public:
    qtopencv2(QWidget *parent = 0);
    ~qtopencv2();

private slots:
    void openimage();
    void saveimage();
    void convertrd();


private:
    Ui::qtopencv2Class ui;
    QString openfile;
    QString savefile;
    QImage doimage;
    QImage doneimage;
    QPixmap dopix;
    QPixmap donepix;
    cv::Mat *cvpix;




    void showresult();
};
离线kimtaikee

只看该作者 1楼 发表于: 2016-04-21
你把cv::Mat 后面的星去掉试试

离线stlcours

只看该作者 2楼 发表于: 2016-04-21
去掉你的UI之后,我特意用QT4+VS2008试了一下,编译也没有问题。

>>以前不是前置申明 只能用指针和引用么?
这样做,通常指未知的类。但是所有的QT类都是已知的,所以没有问题。
离线dbzhang800

只看该作者 3楼 发表于: 2016-04-21
#include <QtWidgets/QMainWindow>
#include "ui_qtopencv2.h"


有这两行代码在,你是得不出标题中的结论的。
离线smallcsduck

只看该作者 4楼 发表于: 2016-04-22
回 dbzhang800 的帖子
dbzhang800:有这两行代码在,你是得不出标题中的结论的。 (2016-04-21 22:59)

貌似你说的很对 ui_~~~.h那个头文件都包含了

离线hezf

只看该作者 5楼 发表于: 2016-04-22
回 smallcsduck 的帖子
smallcsduck:貌似你说的很对 ui_~~~.h那个头文件都包含了
 (2016-04-22 02:14) 

一直没看懂
难道是你以为Qwidget是未知的?
qmainwindow就是继承自它的啊~大兄弟
none
快速回复
限100 字节
 
上一个 下一个