zxwnstn   5년 전

연습겸 클래스로 연산자 오버로딩을 해봣는데

런타임 오류가 어디서 나는지 모르겟네요.. ㅜㅜ

seico75   5년 전

71 라인에서 리턴할때 복사생성자가 필요합니다.

그런데 정의가 안되서 디폴트복사생성자를 사용하게 되어 mat 주소를 그냥 복사할 것 같습니다.

동일 mat 주소를 가지는 두 개의 Matrix 가 있으니 결국 해제시 죽는 것으로 보입니다.

결국 assignment 부분은 사용이 안되네요.

그리고.. assignment 에서 move 를 사용하신 이유가 있나요? std::move 면 그냥 주소 복사의 의미가 될텐데...

마지막으로 ans.mat[i][j] 초기값 셋팅이 필요합니다.

zxwnstn   5년 전

와 진짜.. 정말 잘아시네요.. 코드 읽기 힘드셧을 텐데.. 감사합니다!

제가 프로그래밍 시작한지 얼마 안되서 연습상 이것저것 좋아보이는거 막집어 넣긴 했는데.. 사실 move를 굳이 쓴이유도 그런거죠... 배운거 한번 써보자!

코드가 컴상 비쥬얼 스튜디오에서 돌릴때는 입력 최대값으로 집어넣고 별의 별 값들을 집어넣어도 런타임 에러가 안나서ㅜㅜ

혹시 이럴땐 어떻게 디버깅해야 하는지 팁좀주실수 잇으신가요? ㅜㅜ...

그리고 답변 감사합니다!

seico75   5년 전

알고 있던 것이 아니라 저도 질문보고 공부하면서 알게되는 것들이 많네요..

Visual 스튜디오로 돌리실 때는 debug 말고 release 로 돌려보시면 안나던 에러도 납니다.

visual 스튜디오는 ide 상에서 debug 가 되니까 한스탭씩 가보시면 어디서 죽는지 아실 수 있을 것 같아요.

저는 그냥 중간중간 cout 박아서 어디 들어가는지 봤습니다.

zxwnstn   5년 전

오오 release로 해보는 방법도 있었군요.. 그런팁이 잇었다니.. 시도해 보겠습니다! 감사합니다

댓글을 작성하려면 로그인해야 합니다.