在可重用标头的外部类中引入新的成员函数,导致使用该标头的组件加载失败

我有一个可重复使用的标头,它被多个组件使用。我向外部类引入了成员函数和成员变量,并从一个组件中对其进行了调用。该功能的实现是在可重用标头的.cpp中完成的。它已成功构建,但是在执行工作流程和打开组件时,无法加载它并引发错误。消耗可重用标头的其他组件也无法加载。

要解决此问题...在头文件中,我引入了一个内部类,并向该内部类创建了成员变量和成员函数。我创建了内部类的对象作为外部类的成员。现在一切正常。使用标头的所有组件都已正确加载。

谁能告诉我为外部类引入成员变量和函数时可能出了什么问题,以及如何通过使用内部类来解决? 我只是知道,通过将成员变量引入外部类可能会增加dll的大小,而这可能无法正确使用。但是,如何通过使用内部类对其进行纠正。 内存分配是在这里起作用还是由于其他原因?

下面是可重用标头中的示例代码,其中(1)不起作用,(2)起作用:

(1)

class AFX_EXT_CLASS Class1
{
public:
   Class1()   {var = 8;};
   void Func1(int local);
   int var;
};

注意:Func1()是从除已实现的组件之外的多个组件调用的。

(2)

class AFX_EXT_CLASS Class1
{
public:
    Class1();

    class InnerClass
    {
    public:
        InnerClass(): var(8) {}

        void Func1(int local,Class1::InnerClass* objInnerClass)
        {
            objInnerClass->var = local;
        }

        int var;    
    };

public:
    Class1::InnerClass objMainInnerClass;
//This object is used to call Func1() from the components using the reusable header.
};
yangshd 回答:在可重用标头的外部类中引入新的成员函数,导致使用该标头的组件加载失败

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3063863.html

大家都在问