1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | class abc { public: virtual void real(); // 이렇게 하면 cpp에 작성해야됨 void abc::real() { } }; class def : public abc { public: virtual void real() override; }; //======= class abc { public: virtual void real() = 0; // 이렇게 하면 cpp에 안써도 되던데 }; class def : public abc { public: virtual void real() override; }; | cs |
목적은 부모에서 가상함수 만들어서 아무것도 처리안하고 자식에서 함수 내용 넣어서 실행하려는데
c++ 클래스를 헤더랑 시프프랑 만들었다고 치고
첫번째는 앞에 부모 클래스에 버추얼만 붙이고 cpp에 적어야되잖아요? 너무 귀찮던데
두번쨰는 찾아보니 뒤이 =0; 을 붙이면 cpp에 안적어줘도 되더라고욤 ㅎㅎ 개꿀
이렇게 해도 결과는 똑같던데
차이가 없는건가요?
c++ 문법책 다시보세요
봣움 그냥 첫쨰는 우선순위 정해서 실행, 둘쨰는 무조건 자식새끼가 똥치워야됨 질문은 어차피 부모에서 사용안할 함수면 순수가상함수로 해도 성능이나 별 차이 없눈건쥐
ㅇㅇ 오히려 가상으로 하는게 유지보수면에서 좋음
순수 가상함수는 default 가 없다는 뜻. 그래서 해당 추상객체가 실체화 될 수 없다는 뜻. 나머진 순수나 아니나 똑같지 뭐.
분업화 하다보면 자연히 겸업이 줄어드는거지 뭐~
배워갑니다
되요->돼요 (되어 = 돼임) [리듬 맞춤법 봇♬]