차이점을 잘 모르겠습니다.
주신 프로그램 중 constructSelect.cpp 에서 디폴트 생성자를 지우면 에러가 발생하는데 virtualFunction 에서는 디폴트 생성자가 없어도 동작합니다.
constructSelect.cpp 에서 선언 방식이 아닌 new 연산자를 사용해서 해봐도 에러가 발생하고
객체 내에 멤버메서드가 없어서 그런가 해서 멤버를 만들어도 에러가 발생합니다
VirtualFunction 내의 소멸자의 virtual 을 제거해도 이건 잘 작동합니다.
눈으로 봐서는 도저히 차이점을 모르겠습니다.
Answer 1
0
디폴트 생성자가 사용되는 선언이나 동적 생성 코드가 존재한다면 디폴트 생성자 삭제 시 오류가 발생합니다. 그런데 생성자를 아예 하나도 정의하지 않는다면 컴파일러가 디폴트 생성자를 넣어주기 때문에 디폴트 생성 오류는 발생하지 않습니다.
생성은 클래스 멤버와 무관합니다.
소멸자 가상화는 적절한 ADT 적용 시 추상 형식으로 파생 클래스 인스턴스 삭제 시 적절한 소멸자가 호출될 수 있도록 하기 위한 것으로 문법과는 상관이 없습니다.
생성자에 대한 문법을 다시 살펴보는 것이 좋겠습니다. 참고하시기 바랍니다. 😄
인터페이스 상속과 추상 자료형 2:00 질문
0
50
1
13분 42초의 예제
0
52
2
네임스페이스 스코프 내에서 정의된 변수, 함수들이 위치하는 곳 질문
0
47
1
소멸자 가상함수 질문
0
55
2
이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.
0
63
2
임시 객체 복사 생성자 질문드립니다
0
66
2
변수 바인딩에 대한 의문점
0
113
1
C++ 파일 구조 질문
0
128
1
빈 포인터에 멤버함수 호출
0
104
1
파생클래스에서 virtual함수를 선언에 대한 질문입니다.
0
116
2
순수 가상 클래스 선언과 일반 인트 변수의 선언과 다른가요?
0
137
2
안녕하세요. 이동의미론에 대해 제가 잘 이해했는지 궁금합니다.
0
132
1
인스턴스의 개념에 대해 int a(3), int(5) 예시를 바탕으로한 질문입니다.
0
189
2
식별자 검색 순서 관련 namespace 생략 관련 오류에 관한 질문
0
175
1
마지막 주소록 예제 c 파일 한글 깨짐 현상
0
190
1
nullprt vs null
0
153
2
쓸데없지만 질문드리고싶습니다
0
181
1
복사 생성자 질문 드립니다.
0
221
1
생성자 궁금한거 있습니다
0
218
2
단순대입 오류 발생 이유
0
235
1
네가지 형변환 강의 질문
0
283
1
CMyString Step10 강의 질문
0
174
1
임시 객체와 보이지 않는 복사 생성 강의 질문
0
268
2
섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문
0
219
2

