본문 바로가기

c#18

C++ 16 [객체 반환] ▣ this : 자신에 객체 주소를 의미 ▣ *this : 포인터와 동일하게 자신에 객체 주소에 있는 값 ▣ return *this;으로 객체를 반환하게 되면 그 객체의 멤버변수들에 모든 값들이 반환된다. 2023. 4. 13.
C++ 13 [함수오버로딩, 디폴트 매개변수] ▣ 함수 오버로딩 : c++에서 이름이 같은 함수를 여러 개 만들 수 있다. ▣ 함수 오버로딩 : 함수이름을 중복해서 만들 수 있지만 매개변수 타입이랑 변수의 개수를 다르게 해야 한다. ▣ 디폴트매개변수 : 매개변수의 기본값을 설정 ▣ output(int num1, int num2 = 20) : 함수 호출 시 output(10, 100);처럼 호출하게 되면 함수를 호출해서 전달한 100이 매개변수의 기본값이 된다. output(10); 함수를 호출할 때 매개변수 값을 전달하지 않으면 디폴트매개변수 값으로 지정된다. ▣ 디폴트 매개 변수를 지정할 때 매개변수의 끝부분에 지정해야 오류를 방지할 수 있다. ▣ 함수를 호출할 때 매개변수를 전달해주지 않으면 오류가 발생한다. 2023. 4. 6.
C++ 09 [call by value, call by reference] ▣ 변수나 객체를 매개변수로 전달하면 값에 의한 호출이 된다. ▣ 객체를 매개변수로 값을 전달하면 객체가 복사되어서 전달하기 때문에 전달한 함수에서 객체의 값을 바꾸어도 원본에는 지장이 없다. ▣ 매개변수 객체의 생성자는 호출되지 않고 소멸자만 컴파일에 의해 호출되고 소멸된다. ▣ 객체의 주소로 매개변수를 전달하면 주소의 의한 호출이 된다. ▣ 객체의 주소를 전달했기 때문에 호출된 함수에서 값을 변경하면 원본객체에 영향을 준다. ▣ 객체의 주소로 매개변수를 전달해도 원본 객체의 생성자와 소멸자만 호출된다. 2023. 3. 28.
C++ 08 [string] ▣ string 클래스를 사용을 사용하기 위해서는 #include 헤더가 있어야 한다. ▣ string str(문자열) : 괄호를 통해 초기화 가능 ▣ string *p = new string(문자열) : 메모리 할당으로 string 객체 사용 가능 ▣ string에 속해 있는 getline() 함수 ▣ getline(cin, str, '\n') : getline(cin, 입력받을 객체, 구분문자(구분문자까지 입력)) ▣ str2 = str1 : 대입연산자를 통해서 문자열을 치환(대입)해서 바꿀 수 있다. ▣ 대표적인 string 함수들 객체.append(연결 문자) : 문자열 연결 함수 반환형 객체.length() : 문자열 길이 함수 stoi(객체) : 숫자로 된 문자열을 숫자로 변환 함수 객체.cl.. 2023. 3. 28.
C++ 06 [메모리 할당] https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9 동적 메모리 할당 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 ko.wikipedia.org ▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것 ▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능 ▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다. ▣ 메모리 할당 방법 : 데이터타입 *포인터이.. 2023. 3. 24.
C++ 05 [객체배열] ▣ 객체배열 만들기 : 클래스이름 배열이름[크기]; ▣ 객체배열을 초기화하는 방법 : 클래스이름 배열이름[크기] = { 클래스이름(), 클래스이름(값)}; ▣ 객체배열 인덱스 수만큼 초기화를 해야 한다. ▣ Test() : 매개변수가 없는 생성자 호출 ▣ Test(10) : 매개변수가 있는 생성자 호출 ▣ 소멸자는 큰 숫자 인덱스부터 소멸한다. 그렇기 때문에 매개변수가 있는 소멸자가 먼저 호출되었다. 2023. 3. 24.
10진, 2진수 바꾸기 ▣ 10진수를 2진수로 바꾸기 위해서는 나누기 연산을 진행해야 합니다. 위에 있는 방법처럼 2를 나누어 나눈 나머지와 나눈 값들을 하나하나 나열하여 작성합니다. 그리고 화살표 방향 순서대로 보면 그게 2진수입니다. ▣ 2진수를 10진수로 바꾸는 방법은 1,2,4,8,16,32,64,128,256,512... 이런 식으로 2에 몇 승에 값들을 2진수 위에 숫자를 나열하여 계산해야 합니다. 2진수 위에 2에 몇 승에 대한 값을 나열을 하고 0이 아닌 1인 부분에 값을 다 더하게 되면 10진수가 됩니다. 2023. 3. 21.
C++ 01 [시작, 역사, 특징, 컴파일, 링킹, 디버깅, cout, cin, namespace] ▣ 소프트웨어 : 컴퓨터 프로그램과 데이터를 총칭하는 용어이다. ▣ 프로그래밍 : 컴퓨터가 처리할 작업 ▣ 프로그래밍 언어 : 컴퓨터 언어 https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D 컴퓨터 프로그래밍 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 ko.wikipedia.org ▣ 1972년 C언어 ▣ 1983년 C++ ▣ 1995년 Java ▣ .. 2023. 2. 28.
언리얼엔진5 33장 [마우스 회전] ▣ 안녕하세요. 이번장에서는 마우스회전 블루프린트를 공부해 보겠습니다. ▣ 저번장에서 사용했던 Player를 사용하겠습니다. Player는 플레이어컨트롤러입니다. ▣ 먼저 Edit메뉴에 Project Settings를 클릭하고 ▣ Input 메뉴에서 Axis Mappings를 추가합니다. MoveMouseX, MoveMouseY라는 이름으로 두 개를 추가하고 각각 입력을 Mouse X, Mouse Y로 지정합니다. ▣ 그리고 Player Event Graph에서 위에 있는 이미지처럼 블루프린트를 완성합니다. 아까 만들었던 MouseX, MouseY Axis를 불러오고 Add Controller Input 회전함수를 가져옵니다. 여기서 중요한 건 왜 Pich와 Yaw를 사용하는지 잘 이해하기 어렵습니다. .. 2023. 2. 21.
Visual Studio 컴파일 오류 해결방법 ▣ 윈도키를 클릭하고 cmd를 검색하면 명령 프롬프트가 나옵니다. 클릭해 주시고 ▣ 명령창에 tasklist를 입력하고 엔터키를 클릭합니다. ▣ 그럼 여러 리스티가 나올 텐데 우리가 작성하고 있는 Visual Studio에 프로젝트 이름을 확인합니다. 위에 이미지처럼 왼쪽 위에 보면 확인할 수 있습니다. 프로젝트 이름을 복사하고 다시 아까 명령프롬프트창에 돌아가 CTRL + F 키를 눌러 찾기를 하고 아까 복사했던 프로젝트 이름을 검색합니다. ▣ 그럼 프로젝트에 번호가 있는데 프로젝트 이름에 있는 번호를 복사하고 ▣ taskkill /f /PID 번호를 입력하고 엔터를 클릭하면 강제종료됩니다. 그리고 다시 프로젝트로 돌아가서 디버그를 하면 정상적으로 작동됩니다. 2023. 2. 15.
C++ [정적멤버변수, 정적멤버함수] ▣ 정적멤버를 생성하기 위해서는 멤버변수, 멤버함수에 데이터타입 앞에 static 키워드를 붙여주면 됩니다. 그럼 데이터영역에 저장되어 프로그램이 끝날 때까지 데이터가 남아 있고 외부에서도 접근이 가능합니다. ▣ int Player::count = 0; 정적변수를 초기화하는 코드입니다. 클래스명::멤버변수로 정적멤버변수를 접근해서 초기화할 수 있습니다. ▣ 정적멤버 함수 또한 Player::Sum(); 이런 식으로 호출할 수 있습니다. ▣ 그럼 Player p1;이라는 객체가 생성하기 전에 Sum() 정적멤버함수를 호출했기 때문에 정적멤버변수인 count가 +1이 되었고 또 p1.Sum()으로 호출했기 때문에 count = 1;인 상태에서 또 +1이 되었기 때문에 정적멤버변수인 count가 2가 출력됩니.. 2023. 2. 15.
언리얼엔진5 29장 [폴더관리, 게임모드위치] ▣ 안녕하세요. 이번장에서는 폴더 생성 및 폴더 관리에 관한 간단한 부분 그리고 Game Mode설정에 대한 부분을 공부해 보겠습니다. ▣ 먼저 폴더를 생성해 보겠습니다. Content에서 오른쪽마우스를 클릭하면 메뉴가 나오는데 맨 위에 New Folder를 클릭하시면 폴더를 생성할 수 있습니다. ▣ 폴더를 클릭해서 오른쪽마우스를 클릭하고 Set Color를 클릭하면 폴더의 색을 바꿀 수 있습니다. ▣ 원하는 색을 지정하고 OK를 클릭합니다. ▣ 그럼 위에 이미지처럼 폴더의 색을 바꿀 수 있습니다. ▣ Content에 바탕을 클릭한 상태로 CTRL키를 누른 상태로 마우스를 휠을 돌리면 폴더의 크기를 조절할 수 있습니다. ▣ Content를 클릭하고 마우스오른쪽버튼을 클릭하고 Show in Explorer.. 2023. 2. 15.
언리얼엔진5 28장 [Material] ▣ 안녕하세요. 이번장에서는 Material에 간단한 기능을 공부해 보겠습니다. ▣ 먼저 Place Actors에서 Cube 하나를 생성합니다. 그리고 Cube를 클릭한 다음 오른쪽 Details 메뉴에 보면 Static Mesh과 Materials메뉴가 있습니다. Static Mesh는 모양을 만들고 Materials는 색을 칠한다라고 생각하시면 됩니다. Materials에 원 모양을 더블클릭합니다. ▣ 그럼 이런 창이 나오는데 여기서 색에 대한 노드를 지정할 수 있습니다. ▣ Color블록에 네모모양을 더블클릭하면 이런 창이 나오는데 여기서 원하는 색을 선택해 주시고 컴파일 저장을 합니다. ▣ 씬에서 Cube를 확인하면 색이 바뀌었습니다. ▣ 이번에는 따로 Material을 생성하겠습니다. 폴더에서 .. 2023. 2. 14.
언리얼엔진5 27장 [매크로] ▣ 안녕하세요. 이번장에서는 매크로를 공부해 보겠습니다. 매크로는 함수와 비슷합니다. 그리고 조금 다릅니다. 이 차이를 보기 위해 노드를 연결하며 공부해 보겠습니다. ▣ 먼저 저번장에서 공부했던 Axis로 입력하는 함수를 통해서 진행했던 노드에서 branch가 아닌 Compare Float 매크로블록으로 변경했습니다. 블록에 M이라고 적혀 있으면 매크로이고 F라고 되어 있으면 function 함수입니다. ▣ 컴파일 저장 후 씬에서 플레이 버튼을 클릭하고 위, 아래 키를 누르면 위에 이미지처럼 출력이 잘 되는 걸 확인할 수 있습니다. ▣ 이번에는 매크로를 직접 만들어서 사용해 보겠습니다. 왼쪽메뉴에 보면 MACROS라는 메뉴가 있습니다. 더하기 버튼을 클릭하면 생성이 됩니다. 함수와 동일합니다. ▣ 매크로.. 2023. 2. 14.
언리얼엔진5 20장 [Actor생성, Actor이동] ▣ 안녕하세요. 이번장에서는 Actor를 생성하고 이동하는 코드를 공부해 보겠습니다. ▣ 먼저 Content Drawer메뉴에서 오른쪽마우스를 클릭하여 Blueprint Class를 클릭합니다. ▣ 그럼 이렇게 여러 가지 메뉴들이 나오는데 맨 위에 Actor를 클릭합니다. ▣ 생성한 Actor에 이름을 Player로 지정합니다. F2키를 눌러서 이름을 바꿀 수도 있습니다. ▣ Player Actor를 클릭하여 Actor에 들어갑니다. 그리고 왼쪽메뉴 중에 Components에서 Add를 클릭하고 Basic Shapes에서 Cube를 클릭합니다. 그럼 큐브가 그려집니다. 컴파일 저장 후 ▣ Player Actor를 씬에 드래그합니다. 그럼 위에 이미지처럼 큐브가 생성되는 걸 확인할 수 있고 오른쪽에 Out.. 2023. 2. 2.
C언어 2장(프로젝트 만들기 시작) 비주얼 스튜디오 2019를 잘 설치해오셨나요?? 충분히 많은 인터넷 자료를 통해서 설치해 오셨을 거라 생각합니다. 그럼 진짜 시작을 해보도록 하겠습니다. 이렇게 생긴 아이콘을 클릭해서 프로그램을 실행해보겠습니다. 실행을 하게 되면 로그인을 하라고 나옵니다. 여기서 MS사에 가입을 해서 로그인을 하고 여러분들이 원하는 테마를 설정하고 확인을 눌러주면 저와 같은 창일 나올 겁니다. 저와 그림이 안 비슷하다고 생각하실 수 있으시겠지만 저는 계속 여러 프로젝트를 생성했기 때문에 저렇게 여러개에 프로젝트들이 보이는 겁니다. 그럼 새 프로젝트를 만들어보겠습니다. 우측 하단에 보면 새 프로젝트 만들기라는 있죠? ▣ 그러기 전에 우선 여기서 프로젝트란 무엇일까요? 우리가 작성할 명령서 -> 바로 소스코드(명령서, 설계.. 2020. 4. 6.
C언어 1장(코딩이란?) 여기에 들어오신 여러분은 처음 C언어를 배우시거나 제 글을 보고 여기서 다시 C언어 공부를 시작해야 하겠다는 여러 이유를 가지고 오신 분들이 많이 있을 거라 생각합니다. 제 C언어 수업은 제가 고등학교 때 C언어를 처음 배웠을 때 궁금했던 것들 그리고 너무나 어려웠던 경험들 용어들을 좀 쉽게 하려고 노력할 겁니다. 여기서 빠진 부분은 계속 하나하나 채워갈 예정입니다. 그리고 저에 주관적인 정리로 설명하는 부분들도 있으니 이 수업이 교과서 정답 진리라고 생각하지 마시고 꼭 의문이 생기시면 댓글을 남겨주시거나 검색을 하셔서 스스로 찾아보시면서 공부를 하시면 더 실력을 빠르게 향상될 겁니다. 그럼 시작해보죠. 그냥 재미있는 소설을 읽는다라는 생각으로 꼼꼼하게 읽어주세요. 자 우선 코딩을 하려면 컴퓨터에 구조를.. 2020. 4. 3.
코딩공부 시작하기(*꼭 읽어주세요) ▶ 여러분 안녕하세요. 저는 현재 코딩 강사 및 1인 게임 개발자인 MRG라고 합니다. 우선 코딩 공부하기에 앞서 간단한 제 소개와 저는 컴퓨터 및 코딩 공부를 어떻게 했는지 그리고 이 블로그는 어떤 블로그이고 앞으로 어떤 계획으로 글을 올릴지 알려 드리도록 하겠습니다. ▶ 딱 여기까지 보시면 아 오리엔테이션이구나... 의미 없겠다 다음 글 읽어야지라는 생각으로 넘기시는 분들이 있을 줄 압니다. ^^ 백번 저도 이해합니다. 글을 그냥 읽지 않고 넘기셔도 됩니다. 하지만 이야기를 들어 보시고 많이 공감하실 겁니다. 그리고 그런 고민으로 들어오셨을 거라 생각합니다. 코딩이 왜 이렇게 어렵지, 왜 실력이 안 늘지?, 왜 이렇게 코딩이 재미없지? 유튜브 영상도 보고 학원 그리고 과외까지 다 해봤는데 왜 프로그램.. 2020. 4. 3.