**개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다.
C++에 대한 정확한 자료들은 다음 두 페이지를 참고하자.
https://learn.microsoft.com/ko-kr/cpp/cpp/?view=msvc-170
https://en.cppreference.com/w/
특히 구글링 시, msdn (+검색 내용)을 하면 더 정확하다고 하셨다. msdn_위의 microsoft 공식 문서
class의 활용
class는 헤더파일(.h)/소스파일(.cpp)을 사용하여 분리하고 include로 불러오는 방식을 사용하자.
동적 메모리 해제 유의점
프로그램 중간에 동적 메모리 해제 시 null 값 넣어주기. nullptr.
C++의 문법 특성
C++은 C#과 다르게 변수를 아래, 함수를 위에 선언한다.
C++에만 있는 class의 변수 초기화 고유 문법은 다음과 같다.
class Test
{
public:
Test()
: x(0), y(0) //변수 초기화
{
}
private:
int x;
int y;
}
지평좌표계
위치값과 벡터값이 존재할 때, 이동하는 방법.
2D를 기준으로 0, 1의 층을 나누어 3D 공간에서 계산한다.
위치값 (x, y, 1) ,벡터값_방향 (x, y, 0)으로 존재하여 이를 더한 값이 이동 후 위치값이 된다.
이동 위치 (x+x, y+y, 1+0).
(x, y, 2)는 될 수 없기에 위치+위치는 불가하다.
마찬가지로 3D는 4차원 공간으로 계산한다. (x, y, z, w)
class의 friend 접근 제한자
friend 선언을 해 주면, 접근 제한을 무시하고 private 접근이 가능하다.
편리하지만, 객체 지향 프로그래밍의 원리에 위배하며 남용의 가능성 때문에 Java와 C#에서는 없어졌다.
사용하지는 않지만, Unreal Engine 내부 코드에 종종 보여 해석할 수 있어야 한다.
[중요] 전방선언_class/struct를 다른 class에서 접근하기
포인터나 레퍼런스를 사용하면 class에서 class에 접근 가능하다.
class는 크기를 알 수 없는 타입이기 때문에,
크기를 계산하지 않아도 주소 전달만 하면 되는 포인터와 레퍼런스로 접근이 가능하다!
전방선언 하면 할수록 컴파일 속도가 개선된다.
class 내부 혹은 class 선언 전에 전방선언이 가능하다.
include 대신 사용할 수 있다. (활용이 많다면 include)
복사 생성자
다음과 같은 형태. ClassName(const ClassName& other)
기본 생성자(다른 생성자가 선언되지 않았을 경우)와 복사 생성자가 선언되지 않았다면 기본 생성자로 만들어진다.
기본 생성자를 명시적 제거해야 할 경우 ClassName() = delete;로 생성을 사전 방지한다.
*복사 생성자 호출 시점 공부해 보기
오늘의 강사님 말씀!
추정하지 말고 측정하라.
꼼꼼함이 한 끗 차이의 핵심.
+ 수업 중 이슈
2024.12.26 - [C++/수업 내용] - [ C++/문제 해결 ] class의 깊은 복사와 임시 객체를 통한 생성 오류
'C++ > 수업 내용' 카테고리의 다른 글
[ C++ 6, 7, 8, 9일차 ] 자료구조 시작, T 템플릿, 콘솔 엔진 제작 시작 (0) | 2025.01.08 |
---|---|
[ C++ 4일차 ] static, 형변환, RTTI, 파일입출력, 비트 배열 (0) | 2024.12.30 |
[ C++ 3일차 ] 상속, 객체와 포인터의 관계, virtual 함수, 연산자 오버로딩 (1) | 2024.12.27 |
[ C++/문제 해결 ] class의 깊은 복사와 임시 객체를 통한 생성 오류 (0) | 2024.12.26 |