我有一堂课:

class MakeMeshStructure : public QObject
{
Q_OBJECT
public:

MakeMeshStructure(QObject* parent = 0) {}


在其功能之一中,我这样做:

CadPanel * paneli;
int npanelov = mesh.faces_end().handle().idx();
paneli = new CadPanel[npanelov];


然后这个:

for(int i=0; i<npanelov;i++){
    if(paneli[i].wasSet)paneli[i].draw(this);
}


这是我的小组课:

class CadPanel : public QObject
{

Q_OBJECT
public:

CadPanel();
void draw(MakeMeshStructure* parent); //error here


错误是:错误27错误C2061:语法错误:标识符'MakeMeshStructure'

如何将MakeMeshStructure父级传递给此CadPanel函数使用?泰

最佳答案

您必须在类中添加转发类声明:

class MakeMeshStructure; // IMPORTANT: Declares a forwarding class

class CadPanel : public QObject
{

    Q_OBJECT
public:

    CadPanel();
    void draw(MakeMeshStructure* parent); // no more error :)
}


请注意,如果这些类位于单独的名称空间中,则必须使用适当的名称空间来限定名称。

关于c++ - 将类作为函数参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11312541/

10-12 20:37