2015-01-25 3 views
-1

Я разрабатываю приложение C++. Я получаю сообщение об ошибке Invalid use of non-static data member 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 //member 'ex' 
      free(ex); 
      ex = NULL; 
     }  
    } 
+5

Сообщение об ошибке очень ясно. Знаете ли вы разницу между статическими и нестационарными членами? – Mat

+0

Мне нравится соглашение об именах для файлов. Очень интуитивно понятна их функция. PS: Почему вы используете 'free' в коде на C++ –

ответ

2

хорошо, это довольно ясно, CDP не имеет функции члена с именем Release и экс не является статичным, то есть вы можете его перенаправить из выделенного объекта, а не из самого класса

4

Элемент данных (ex), который вы используете, не является статическим членом. Поэтому его нельзя вызвать в имени класса, вам нужен класс экземпляр, чтобы использовать его.

+0

, можете ли вы оставить сообщение, как его использовать. это тоже поможет другим – user3423301

+0

@ user3423301 вам нужно понять основы. Определение класса не дает вам объекта, оно просто определяет, как ведут себя объекты. Вы хотите иметь более одного объекта вашего типа 'Const2DCDP', каждый с другим значением' ex', правильно? –

Смежные вопросы