본문 바로가기
C++ 200제/코딩 IT 정보

Qt 프로그래밍 Errors: cannot allocate an object of abstract type '???'

by vicddory 2018. 9. 11.
반응형

Qt 프로그래밍 Errors: cannot allocate an object of abstract type '???'


에러 메시지 - Errors: cannot allocate an object of abstract type '???'


pure 스타일의 가상 함수를 만들어 사용 중이었는데, 자꾸 저런 에러가 뜨더라. 부모 클래스의 가상 함수(pure( = 0))를 구현하지 않은 자식 클래스는 객체 생성이 안 된다. 분명히 구현이 다 되었음에도 구현되지 않았다는 에러가 뜨길래 혹시나 해서 폴더를 뒤져봤다.


Qt 프로그래밍 abstract type[Qt 프로그래밍] 우분투 파일 탐색

아이고... 이런 세상에... Command.h 파일 이 두 개 다. 하나는 대문자로 시작하고 하나는 소문자로 시작하네. Qt 프로그래밍 에로 사항이 이것이다.


회사 내규상 파일명은 대문자로 시작해야 하기에, 작업 중 파일을 교체했었다. Qt Creator는 도구에서 열렸던 파일이 로컬에서 삭제가 되면 현재 도구 상의 내용으로 파일을 새로 생성한 후 저장할 것이냐 묻는데, 내가 아마도 그때 저장한다는 메뉴를 눌렀었나 보다.


그리고 매번 발생하는 건 아니지만, 위와 같이 파일의 이름 중 일부를 대/소문자로 교체해도 잘 반영이 안 되는 경우가 있다.


Qt 프로그래밍 가상 함수[Qt Creator] No rule to make target - 에러 메시지


No rule to make target '../../../Command.h', needed by 'main.o'. Stop


원래는 위의 에러 메시지처럼, 대/소문자로 파일 이름이 교체되면 파일을 찾을 수 없다는 에러를 보여야 한다.


헌데, 내 경우엔 #include <../../command.h>에서 #include <../../Command.h>로 소스를 고쳐줬음에도 불구하고 새로 저장된 기존 파일을 사용하고 있었다. .pro 파일에도 엄연히 Command.h로 수정되었음에도 말이다.


Errors: cannot allocate an object of abstract type '???'


이 에러가 발생하면 코드보단 폴더를 먼저 봐야겠다.



ps. 아이고... 이거 때문에 한참 고생했다. 한 시간쯤 고생했나....


Qt 프로그래밍 Errors: cannot allocate an object of abstract type '???'

반응형