약 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{...}
처럼 첫째, 파생 클래스의 선언이 보일 것입니다, 그렇지 않으면, 컴파일러는 불평. 둘째, 나는
childInstance
이
ChildClass
의 인스턴스 다음 코드
childInstance.getVariable()
하여 메인 프로그램에서 함수 double ParentClass::getVariable() const
에 액세스 할 수 없습니다.
다음은 내가 발견 한 두 가지 변화입니다. 파생 클래스를 올바르게 정의하는 법을 알려주시겠습니까? 고맙습니다!
그건 그렇고, 내가 사용하고있는 컴파일러는 Cygwin에서 gcc 5.4.0입니다.
[이 책] (https://stackoverflow.com/q/388242) 중 하나를 선호하고 가지고있는 것을 빈에 버려야합니다. – user0042
'공개'는 '공개'와 매우 다릅니다. 하나는 잘못되었고 다른 하나는 맞습니다. –
그리고 C++은 대소 문자를 구별하는 언어입니다. '공개'는 '공개'와 동일하지 않습니다. – user0042