내가 이번에 잘못된 기능으로 파악하고 있었던 클래스의 전방선언
1. Include없이 전방선언만 했을 때 사용하지 않아도 오류가 없다.
2. 전방선언한 클래스의 크기를 사용한다면 함수의 정의가 없어도 괜찮다.
지금 테스트하는 파일 구조를 설명하면
여기서 프로젝트1만 실행된다.
MyClass에는 클래스 MyClass가 있다.
main.h 에서 myInclude.h만 Include하는 상황이다.
고로 main.h는 MyClass.cpp는 아에 모른다.
이렇게 cpp는 몰라도 객체가 생성이 될까?
멤버함수는 클래스의 크기에 들어가지 않는다.
객체 생성은 클래스의 크기만 알면 되기때문에
헤더파일의 멤버 변수만으로도 클래스의 크기를 알수있다.
클래스의 크기를 알수있다는 것은 객체 생성은 물론이고 연산까지 가능하다.
나는 바보같게 함수도 꼭 정의되어야 이렇게 객체 생성이나 다룰 수 있을줄알았는데 ..
생각해보니 이게 맞았다.ㅋㅋㅋ
물론 이 상태에서 함수를 사용하면 에러가 난다.
'C++ > 헷갈리는것들 정리' 카테고리의 다른 글
복사생성자가 왜 호출이 되지 않나? (copy elision) (0) | 2022.03.28 |
---|---|
주소 관련 (0) | 2021.07.15 |
malloc & new & delete [작성중] (0) | 2021.06.29 |