2017-11-26 14 views
-3

약 2 년 전에 Walter Savitch의 Absolute C++ (5th ed.)를 배웠습니다. 이 책에서 파생 된 클래스를 선언하는 방법은 그 부모 클래스가C++에서 파생 클래스를 정의하는 방법은 무엇입니까?

class ChildClass:Public ParentClass{...} 

class ParentClass 
{Public: 
double getVariable() const; 
...} 

이 책은 또한 내가 멤버의 정의를 변경하지 않으려면 말한다 같은 함수를 파생 클래스를 선언 할 때 부모 클래스의 함수, 파생 클래스 선언에 다시 작성할 필요가 없습니다. 예를 들어 ParentClass이라는 멤버 변수를 평가하는 double ParentClass::getVariable() const의 정의를 변경하지 않으려는 경우 파생 클래스 ChildClass의 선언에 명시 적으로 다시 작성할 필요가 없습니다.

최근에 저는 프로젝트를 해결하고 수년 동안 변화된 것을 발견했습니다. 당신은 ParentClass 앞에 Public를 삽입해서는 안

class ChildClass:ParentClass{...} 

처럼 첫째, 파생 클래스의 선언이 보일 것입니다, 그렇지 않으면, 컴파일러는 불평. 둘째, 나는 childInstanceChildClass의 인스턴스 다음 코드

childInstance.getVariable() 

하여 메인 프로그램에서 함수 double ParentClass::getVariable() const에 액세스 할 수 없습니다.

다음은 내가 발견 한 두 가지 변화입니다. 파생 클래스를 올바르게 정의하는 법을 알려주시겠습니까? 고맙습니다!

그건 그렇고, 내가 사용하고있는 컴파일러는 Cygwin에서 gcc 5.4.0입니다.

+4

[이 책] (https://stackoverflow.com/q/388242) 중 하나를 선호하고 가지고있는 것을 빈에 버려야합니다. – user0042

+2

'공개'는 '공개'와 매우 다릅니다. 하나는 잘못되었고 다른 하나는 맞습니다. –

+2

그리고 C++은 대소 문자를 구별하는 언어입니다. '공개'는 '공개'와 동일하지 않습니다. – user0042

답변

0

Public은 C++에서는 특별한 것이 아닙니다.

public으로 작성해야합니다.

구문 강조 표시조차도 오류를 알려야합니다. 올바른 키워드에 적응 한 후에는

if else for while public 
Am Tree Hat House Public 
        ^~~~~~ 

는 더 이상 문제가 없을 것 :

이 예를 참조하십시오. 기본적으로 class에 대한 내용은 private입니다.