| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 언리얼
- 오늘밤 세계에서 이 사랑이 사라진다 해도 #독후감 #오열
- 툰쉐이딩
- 네트워크 기초
- UE_5
- c++ 베이직
- 헤더 경로
- Gas
- 메테리얼
- 코드리뷰
- Console
- 언리얼 엔진5 #언리얼 클라이언트 프로그래밍
- 순환 리스트
- CS50
- 원카페#무인카페#카페추천#카페맛집
- 언리얼엔진5 #언리얼 클라이언트 프로그래밍
- 백준
- leetcode
- Harvard
- Unreal
- A* Algorithm
- Toon Shading
- topdownmove
- C++
- 브론즈
- Module
- build.cs
- 폭설 #미친 날씨
- STL
- CS
- Today
- Total
목록전체 글 (113)
WN_인생기록
오버로딩은 객체지향의 다형성을 나타내는 기능중 하나이며, 함수 오버로딩은 같은 이름이어도 함수의 매개변수의 타입, 타입 갯수 등이 달라지면 다른 함수로 인식되는 기능입니다. 그래서 다양한 변수 타입과 연결시킬 수 있습니다. 반면 연산자 오버로딩의 경우, 이미 존재하는 연산자에 대해서 새로운 사용자 정의 양식을 부여하는 기능입니다. 그래서 보통은같은 타입 끼리 연산되는 연산자이지만, 다른 객체끼리의 연산도 가능하게 하는게 연산자 오버로딩입니다.
포인터는 데이터를 특정 메모리에 할당하거나 다른 메모리 위치를 가리킬 수 있는 기능입니다. 메모리 할당과 해제가 자유롭습니다. null 이라는 특수값을 보유할 수 있습니다. 기본적으로 주소를 나타내기 때문에, 값을 표시하려면 표시하려는 변수에 *를 붙여야 합니다. 참조는 데이터가 특정 메모리에 바인딩하여, 그 데이터를 가리키는 기능입니다. 자체 주소가 아니기 때문에 동적 메모리 관리에는 사용할 수 없습니다. 항상 유요한 개체를 참조해야 합니다. 참조는 자동으로 역참조가 되기 때문에 변수 자체를 사용하여 값에 접근할 수 있습니다. 요약하자면, 사용 구문, 메모리 관리, null 사용 여부 등에서 차이를 보입니다.
둘 다 사용자 정의 데이터 유형을 정의하는데 사용되는 기능입니다. Struct는 접근 제어자가 public이 기본으로 되어있기에 외부에서 직접 액세스가 가능합니다. Class의 경우 private가 기본으로 되어있기에 직접 액세스는 불가능합니다. 그러므로, Struct는 공개된 멤버함수나 멤버변수를 사용할때 주로 쓰이며, Class의 경우 보안이 좀더 강화된, 외부에서 수정할 수 없는 객체를 만들때 쓰입니다.
&은 생각보다 많이 쓰이고 중요한 개념이지만 역할이 많아서 인지 헷갈리는 경우가 많다. 대부분 원본 데이터를 직접 건드린다는 점에서 기억에 남지만 이번 기회에 확실하게 개념을 짚고 가야겠다. 간단한 예시를 보자 #include using namespace std; int main() { int x = 10; int& y = x; cout
배울땐 그저 이름 충돌 방지하는 그런 역할로 알고있었는데, 깊게 생각해본적이 없어서 한번 정리해보려 한다. 우리가 주로 쓰는건 iostream의 std 인데. 정확하게 무슨 역할을 하고 어떤 기능을 하는지 알아보자. 먼저 :: 연산자에 대해 먼저 알아보자면 namespace에서 사용할 수 있는 정의된 내용들에 접근할 수 있는 연산자이다. namespace란 프로그래머가 식별자의 논리적 그룹을 정의할 수 있게하는 범위이다. 말로 해서는 뭔가 이해가 잘 되지 않는다. 코드를 보자. #include using namespace std; //using namespace Math1; //using namespace Math2; namespace Math1 { int add(int a, int b) { return..
1. 런타임때 동적으로 메모리를 할당할 수 있어서, 메모리 관리가 용이합니다. 2. C++은 C의 절차지향적 설계를 보완하기 위해서, 객체지향적 설계 라는 개념이 도입되어 탄생한 언어이기 때문에, 객체에 관련된 기능들은 전부 C++에서만 사용가능합니다.(오버로딩)
const 는 상수라는 뜻을 가지며 변경할 수 없는 상수값을 의미한다. 중요한건, const 가 어디에 붙느냐에 따라서 달라진다는 것이다. 이게 은근 헷갈린다. 가장 많이 쓰이고 평범한게, const로 선언된 변수 int a = 5; cosnt int b = a; b는 a의 값이 5가 대입되며, 수정이 불가해진다. 그래서 확실한 수 이거나, 기준이 되는 변수를 설정할때는 const 를 붙인다. 포인터 선언에서 사용되는 const int* const ptrA = &a; //ptrA = 4; error const int* const pNum = &a; //*pNum = 8; error //pNum = 9; error const int& refNum = a; //refNum = 8; error //const가..
취업을 얼른 해야겠다는 생각에 우당탕당 완성해버린 포폴. 부족한게 너무 많고 더 알아가야할것도 많지만 그간 보고 배운것들을 갈아넣었다. 설계적인 부분에서 좀더 치밀했으면 좋지 않았을까 하는 아쉬움이 있었다. 그리고 시네마틱도 넣었으면 좋았을텐데 조급해서 넣지는 못했다. 그래서 다음 프로젝트에서는 좀더 세밀하고 정교하게 할 마음이 생겼다. 포폴 영상 작업 하면서 체크했던 부분들 업데이트하면서 마무리 할 예정이다. [x] Lv과 GameMode를 통한 메인 메뉴 및 세팅 구현 [x] Scability( 엔진 퀄리티) 조정을 통해서 그래픽 조정 기능 구현 [x] 8방향 이동 [x] Turn in Place (MovementOffset Yaw) [x] AimOffset 구현 [x] Animation blend ..