2017-04-19 2 views
1

어떻게 추상 클래스를 선언합니까? 예를 들어C++에서 abstract 클래스 선언

, 나는 그것이 같은 키워드 가상을 사용하고 알고

class test{ 
public: 
virtual void test()=0; 
} 

내 질문은 다음과 같습니다 : I 추상 테스트 클래스 수 있습니까? 그렇지 않다면 왜

virtual class test{ 
} 
+0

왜 하시겠습니까? 메소드가없는 클래스를 갖는 것은 절대 의미가 없습니다. – meagar

+0

위와 같이 추상 클래스를 선언 할 수 있는지 여부를 확인하고 싶습니다. – Faceless

+0

불가능합니다.이 작업을 원하지 않아야합니다. 그것은 말도 안돼. – meagar

답변

2

내 질문에이 같이 할 수있는 I 추상 테스트 클래스 얼마나?

아니요. 정의에 의한 추상 클래스는 하나 이상의 순수 가상 함수를 포함하는 클래스입니다.

0

귀하의 코드 :

class test 
{ 
virtual void test()=0; 
} 

는 추상 클래스를 생성합니다.

virtual void test()=0;//is a pure virtual function/method 

추상 클래스는 하나 개 이상의 순수 가상 함수를 포함하는 클래스 정의입니다 :
은 하나 개 이상의 순수 가상 함수가 포함되어 있습니다.

완전한 정의가 아니기 때문에 추상 클래스의 인스턴스를 만들 수 없습니다.

귀하의 코드 :

virtual class test 
{ 
    } 

는 하나 이상의 순수 가상 함수가 포함되어 있지 않기 때문에 추상 클래스의 정의에 상승하지 않는, 무의미, 그리고 '가상'키워드의 부적절한 사용하는 것입니다 ...

"추상 클래스"의 의미를 오도하는 방법 인 "가상 기본 클래스"에 대해 혼란 스러울 수 있습니다.

추상 클래스를 만들기위한 목적은 그것을 파생 된 클래스로 상속하는 것이고 순수 가상 함수/s에 대한 완전한 정의를 제공합니다.

추상 클래스에는 완전하게 정의 된 많은 메소드가있을 수 있지만 추상화하는 순수 가상 메소드는 하나만있을 수 있습니다. 단순한 예는 오도 된 것입니다. 추상 클래스는 흔히 사용되며 종종 Barbara Liskov Substitution Principle에서 발생하는 문제에 대한 "수정"입니다.

Dr t