2011-01-06 2 views
0

클래스 CAnalyzer, 이 있고이 클래스에서 새 클래스 이름 CManager로 포인터를 만들고 싶습니다. 어떻게 할 수 있습니까? 참고 : CAnalyzer의 init func 안에 포인터를 만들어야합니다. 난 당신이 무슨 뜻인지 이해하지 감사C++ 포인터 클래스

+0

클래스 CAnalyzer가있는 경우 모든 클래스가 'C'로 시작하는 icky Microsoft 명명 규칙을 사용하고 있습니다. 클래스에서 구조로 변경하려면 CAnalyzer **를 참조하는 모든 파일에서 CAnalyzer를 SAnalyzer **로 변경해야합니다. 이름에 데이터 유형을 인코딩하지 않는 것이 좋습니다. –

+0

@Thomas : "class"는 데이터 유형이 아닙니다. – ltjax

+0

@Itjax : 참고 문헌을 기재하십시오. "객체 지향 프로그래밍을 통해 프로그래머는 응용 프로그램 요구 사항을 충족시키는 새로운 데이터 유형을 만들 수 있습니다."데이터 추상화 "로 알려진 이러한 연습은 새로운 데이터 클래스입니다."http://searchsoa.techtarget.com/definition/data-type –

답변

0

init func에서 생성자를 의미합니까?

CAnalyzer::CAnalyzer() 
{ 
    CManager *pManager = new CManager(); 
} 
3
class CManager; // Forward declaration (may not be needed) 

class CAnalyzer 
{ 
    // Other stuff goes here 

private: 
    CManager *p_manager; 
}; 

"나는 CAnalyzer에서 초기화 FUNC 내부 포인터를 확인해야합니다."

+0

+1 확실하지도 않았지만 추측이 내 것보다 낫다 –

0

나는 당신이 요구하는 것을 정확히 이해하고 있는지 모르겠다. 그래서 나는 추측 할 것이다.

CManager의 새 인스턴스에 대한 포인터를 반환하는 CAnalyzer의 멤버 함수를 작성하고 싶습니까? 다음과 같이 할 수 있습니다 :

CManager* CAnalyzer::CreateManager() 
{ 
    return new CManager; 
} 

강력한 프로그래밍을 위해 원시 포인터 대신 스마트 포인터를 사용해야합니다.

+0

CreateManager가 아니어야합니까? – Puppy

+0

@DeadMG : 그래, 아마도. 결정된 –

관련 문제