내일배움캠프 11일차 - C++ 문법 : 잊어먹기 쉬운 것

오늘은 과제를 수행하느라 다른 강의를 듣지 못했다. 따라서 이전까지 과제를 하면서 과거에 배웠던 것을 잊어서 복습했던 것들과 과제를 하면서 겪은 문제해결의 대책을 적음으로써 해당 내용들을 상기하는 시간을 갖는다.

깃(Git)

 1) 새로운 레포지토리를 깃허브에서 미리 만든다.
 2) 레포지토리와 동기화할 빈 폴더에서 cmd를 켠다(탐색기에서 주소표시줄에 cmd를 적으면 해당 폴더에서부터 시작하는 명령창이 뜬다)
 3) 'git clone [깃허브 레포지토리 주소]'를 적어서 동기화시킨다.
 4) 이후 clone한 폴더에 내용물을 넣고(add) → git commit -m [커밋메세지]git push 로 내용물을 갱신한다.

또는 이런 방법이 있다.

1) 깃허브를 좀더 직관적으로 관리해주는 그래픽 쉘 프로그램을 켠다 (본인은 깃허브 데스크탑을 쓴다)
2) 빈 폴더를 새로 만든 레포지토리와 clone한다. (이 과정에서 레포지토리는 public으로 전환한다)
3) 빈 폴더에 내용물을 넣는다.
4) 내용물에 커밋 제목, 내용을 적고 commit을 한다.
5) commit이 완료되면 fetch를 실행해 갱신한다.

C++ 상속클래스 문법

 - 부모는 '기본클래스', 자식은 '파생클래스'로 불린다.

 - 파생 클래스에서 기본 클래스의 함수를 재정의 시 함수 뒤에 override를 붙이면 재정의 시 코딩 실수에 대해 컴파일 에러로 경고해준다. 때문에 붙여주는 습관을 들이면 좋을 것이다.

멤버 초기화 리스트

 - 생성자를 정의하는 또 다른 방법으로 아래 사진처럼 사용한다. 처음 선언할 때만 사용되며, 실행코드 { } 보다 먼저 실행된다.

 - 기본 클래스(Base)의 생성자를 가져와 쓸 때는, Base(매개변수)를 멤버 초기화 리스트에 적용할 수 있다.
 - 기본 클래스멤버변수를  파생 클래스 생성자의 멤버 초기화 리스트에서 초기화하려들면 컴파일오류를 일으킬 수 있다. 실행 코드 { }에서 초기화해줘야한다.


클래스 전방선언

 - 클래스별로 파일이 분리되었을 경우, 서로가 서로의 클래스를 참조하는 과정에서 필연적으로 먼저 불러와야 하는 클래스가 역순으로 불러와지는 경우가 있다. (예: B.h내 클래스를 참조하는 A.h가 먼저 include됨)

 - 이 경우, 전방선언을 통해 해당 개체가 클래스임을 미리 명시하여 컴파일오류를 방지할 수 있다.

 또는, 불러오는 시점에서 class 전방선언을 할 수도 있다.


※ 상속 클래스 등을 .h, .cpp 분리해서 정의할 경우 주의사항

 - 평소 #include는 cpp파일에서 선언하는것이 원칙이나(컴파일속도, 의존성관리 향상), 파일이 분리되면서 기존 main.cpp에 선언했던 include헤더가 포함되지 않았을 수도 있다.

 - 파생클래스에서 기본클래스.h 또는 값자료형 헤더를 부득이하게 선언해야할 필요가 있을때 .h, .cpp 가리지 않고 #include 전방선언해도 된다. #pragma once가 중복선언을 막아주기 때문이다.

 - using namespace std 또한 같이 선언하는 것이 좋으나, 코딩테스트 등에서의 실수를 피하기 위해 네임스페이스 선언 없이 "std::"를 같이 쓰는 연습도 하면 좋을 것이다.

댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁