C++;非静态数据成员的使用无效 我正在开发C++应用程序,我正在得到错误 非静态数据成员C++的使用无效。我已经发布了所有与错误相关的代码。如果有人能指出我的愚蠢,我将不胜感激。谢谢

C++;非静态数据成员的使用无效 我正在开发C++应用程序,我正在得到错误 非静态数据成员C++的使用无效。我已经发布了所有与错误相关的代码。如果有人能指出我的愚蠢,我将不胜感激。谢谢,c++,C++,Const2DCDP.h class Const2DCDP{ public: int *ex; }; 2DCPDP4.h #include "Const2DCDP.h" class CDP{ } 2DCPDP4.cpp #include "2DCDP4.h" void CDP::Release() { if(Const2DCDP::ex != NULL){ // Invalid use of non static data

Const2DCDP.h

class Const2DCDP{
public:

    int *ex;

};
2DCPDP4.h

#include "Const2DCDP.h"

    class CDP{
    }
2DCPDP4.cpp

#include "2DCDP4.h"

    void CDP::Release()
    {

        if(Const2DCDP::ex != NULL){  // Invalid use of non static data //member 'ex'
            free(ex);
            ex = NULL;
        }      
    }

很明显,CDP没有名为Release的成员函数,ex不是静态的,这意味着您可以从分配的对象中,而不是从类本身中超出它。您使用的数据成员(
ex
)不是静态成员。因此不能在类名上调用它,您需要一个类实例来使用它。

错误消息非常清楚。你知道静态和非静态成员之间的区别吗?我喜欢文件的命名约定。对它们的功能非常直观。PS:为什么在C++代码中使用<代码>免费>代码>请您说明如何使用它。它会帮助别人too@user3423301你需要了解基本知识。定义类不会给你一个对象,它只是定义对象的行为。您希望能够拥有多个
Const2DCDP
类型的对象,每个对象都具有不同的
ex
值,对吗?