2015-01-25 2 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

파일 이름 지정 규칙을 좋아합니다. 그들의 기능에 관해서는 매우 직관적입니다. 추신 : 왜 C++ 코드에서'free'를 사용하고 있습니까 –

답변

2

아니라, 그것은, CDP 릴리스라는 이름의 멤버 함수가없는, 아주 분명하고 전 정적이 아니기 때문에 클래스 자체가 아닌 할당 된 객체에서 초과 할 수 있습니다.

4

사용중인 데이터 멤버 (ex)는 정적 멤버가 아닙니다. 클래스 이름에서 호출 할 수 없기 때문에 클래스 인스턴스이 필요합니다.

+0

사용법을 게시 할 수 있습니까? 그것은 다른 사람들을 도울 것입니다 – user3423301

+0

@ user3423301 당신은 기초를 이해해야합니다. 클래스를 정의한다고해서 객체가 제공되는 것은 아니며 객체가 작동하는 방식을 정의합니다. 각각의 'ex' 값을 가진'Const2DCDP' 타입의 객체를 두 개 이상 가질 수 있기를 원합니다, 맞습니까? –

관련 문제