2013-10-21 1 views
-1

저는 C++을 처음 접했고 제 프로젝트와 관련된 C++ 코드를 이해해야한다고 들었습니다. 나는 이것이 무엇을 의미하는지 모른다. car 클래스의 클래스입니다 .CallBack은 (내가 말했듯이) 일부 최상위 디렉토리에 정의되어 있습니다. 처음 3 줄의 코드에 대해서는 명확하지 않습니다. 나는 코드의 4 번째 줄이 생성자라고 믿는다. 스 니펫이 무엇을 의미하는지에 대한 통찰력을 제공해주십시오.구조체와 클래스 (C++)

struct model_ares : car, 
public car_CallBack, 
module_if::model_ares 
{ 
    model_ares(const char *model_name); 
    void init(); 
    void start_test(); 
+0

완전히 동일합니다. 여기를 참조하십시오 : http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list/4891093 – JBentley

답변

0

C++의 구조체는 클래스와 동일합니다. 하나의 차이점은 구조체 멤버의 기본 가시성이 public이고 클래스에 대해 private 인 점입니다. 어떤 수단

+0

나는 그것을 이해하지만 클래스와 구조체의 조합의 종류는 무엇을 의미합니까? – RoyOneMillion

+0

다중 상속 - http://en.wikipedia.org/wiki/Multiple_inheritance –

+0

@dmitry에 감사하지만 더 많은 C++ 관련 링크를 제공 할 수 있습니까 ?? – RoyOneMillion

3

model_arescar, car_CallBackmodule_if::model_ares로부터 공개적으로 상속하는 유형이고, 공공 변환 생성자 다른 두 공개 멤버 함수를 갖는 것이다.

C++의 경우 classstruct은 본질적으로 같습니다. 기본 상속 및 멤버는 struct의 경우 public이고 class의 경우 private입니다. 그것은 유일한 차이점입니다. 둘 중 하나를 사용하여 정확히 같은 유형을 표현할 수 있습니다. 당신이 C++를 처음 사용하는 경우

코드는 다음 첫 번째 우선 순위는 좋은 책을 읽을 수 있어야

class model_ares : public car, 
        public car_CallBack, 
        public module_if::model_ares 
{ 
public: 
    model_ares(const char *model_name); 
    void init(); 
    void start_test(); 
}; 
+0

"model_ares"와 "module_if :: model_ares"의 두 model_ares가 다른 것을 의미합니까 ?? 또한 공공 변환 생성자, 즉 private 변수가 공개 된 것은 무엇을 의미합니까? – RoyOneMillion

+0

@RoyOneMillion 네, 서로 다른 유형이어야합니다. public 변환 생성자는'model_ares (const char * model_name);'입니다. – juanchopanza

+0

3 개 소스 (car, car_CallBack 및 module_if :: model_ares)에서 상속하는 경우 car_CallBack보다 먼저 액세스 한정자 (public)가 필요한 이유는 무엇입니까? – RoyOneMillion

관련 문제