VEDA(한화비전 아카데미) 1기 : 2주차 기록

액상과당·2024년 8월 4일


👍🏻 이번 주 수업에서 좋았던 점 Liked

  • 사실 알고리즘 공부를 계속 C++로 해왔던지라 C언어보다는 수업 내용이 친숙했다. 그럼에도 배울 내용은 무한하다! 내가 알고 있다고 생각했던 개념이 배신(?)을 하기도 했고, 모호하게 알고 있던 부분을 시원하게 정리할 수 있었던 한 주였던 것 같다.

📚 이번 주에 새롭게 배운 점 Learned

  • struct vs class
structclass
typevaluereference
defaultpublicprivate
memorystackheap
constructor/destructorNoYes

class가 struct보다 메모리를 더 사용한다 (생성자, 소멸자 때문에)

  • malloc vs new
    • 초기화
      malloc: 메모리 블록이 초기화되지 않음 new: 기본 생성자를 호출하여 객체가 초기화됨
    • 타입 안전성
      malloc: 반환 타입이 void*이므로 형변환이 필요함 new: 타입에 맞는 포인터를 직접 반환하므로 형변환이 필요 없음
    • 객체 생성
      malloc: 단순히 메모리 블록을 할당함 new: 메모리 블록을 할당하고, 생성자를 호출하여 객체를 생성함
    • 메모리 해제
      malloc: free 함수를 사용하여 메모리 해제함 new: delete 연산자를 사용하여 객체의 메모리 해제. 배열의 경우 delete[] 사용함
    • 예외 처리
      malloc: 메모리 할당 실패 시 nullptr을 반환함 new: 메모리 할당 실패 시 std::bad_alloc 예외를 던짐 (기본적으로)
      초기화
  • pointer vs reference
    • pointer
      메모리 주소를 저장하고, NULL로 초기화하거나 다른 주소를 가리킬 수 있음
    • reference
      객체의 별칭으로, 한 번 설정된 후 다른 객체를 참조할 수 없으며 항상 유효한 객체를 참조해야 함
  • 표기법
    camelCase
    첫 단어는 소문자로 시작하고, 이후 단어의 첫 글자를 대문자로 쓴다 (변수명, 함수명)
    PascalCase
    모든 단어의 첫 글자를 대문자로 쓴다 (클래스명)
    strHungarianNotation
    변수명 앞에 해당 변수의 자료형이나 용도를 나타내는 접두사를 붙인다 (변수명)
    snake_case
    모든 단어를 소문자로 쓰고 단어 사이를 언더바로 구분한다 (변수명, 함수명)

🧐 배운 것에 관련해서 내가 부족했던 점 Lacked

  • 교재 진도 상 다음 주에 자세히 기록할 것 같아 이번 주는 생략했지만 생성자 종류가 매우 다양하다! 특히 기본 생성자(혹은 디폴트 매개변수)를 사용해 멤버 함수를 초기화하는 방식과 클래스 생성과 동시에 초기화하는 것에 대한 차이도 궁금했는데, 단순 C++의 버전 차이라니...
  • morden C++을 사용했기 때문에 classic C++은 조금 어색하다. 그렇지만 컴파일러 버전에 따라 morden C++이 지원 안 될 수도 있다고 생각하면 C++ 버전별로 차이를 조금씩 알아두는 것도 좋을 것 같다.
  • 이번 주 기록은 두 개념을 비교한 게 많은데, 여태 두 개념을 섞어 알고 있었기 때문에 명확히 하고자 비교해 기록했다...!

📝 앞으로 무엇을 더 하면 좋을지 Longed for

  • 학부 시절 C++을 공부했던 사이트가 있는데, 틈틈이 그 사이트에서 다시 공부해 보는 것도 좋을 것 같다. 특히 C++의 경우는 수업 교재보다 더 넓은 내용을 다루고 있기 때문에 재미도 있지 않을까 싶다. 씹어먹는 C++

VEDA 바로가기 : www.vedacademy.co.kr
VEDA(한화비전 아카데미) 영상으로 확인하기 : https://url.kr/zy9afd
본 후기는 VEDA(한화비전 아카데미) 1기 학습 기록으로 작성되었습니다.

0개의 댓글