자료구조 | C++ | 클래스
·
개발/C++
개요드디어 뭔가 C++에서 객체지향스러운걸 배우기 시작했습니다.대충 클래스는 틀이고... 거기서 만들어진건 객체고...다 C#에서 이미 배웠던겁니다.     클래스와 객체class Circle{public : int radius; string color; double calcArea() { return 3.14f * radius * radius; }} 익숙하죠?저거 그대로 C#에 옮겨가도 딱히 위화감이 없습니다. 한줄 한줄 풀어보자면... class Circle : class 키워드로 클래스를 선언하고 클래스 이름을 적습니다. public : : 접근 제한자라고 불리고 public 이면 밖에서 맘대로 접근 할 수 있고 private이면 접근할 수 없습니다.protect..
자료구조/게임 프로그래밍 | C++ | 함수, 포인터
·
개발/C++
개요자료구조 수업의 진도는 계속 나가는데 글을 쓰는 빈도는 점점 줄고 있습니다.주기를 조금 줄여야겠네요. 오늘 쓸 함수에 대한 글은 지난주에 진작 나갔던 진도입니다... 아이고저번주에 나간 게임 프로그래밍 시간에 나갔던 진도와 겹치는 부분이 있어서 합쳐서 정리하겠습니다.    함수란?간단하게 함수는 input을 넣으면 output이 나오는 것 이라고 할 수 있습니다. 함수들은 선언할때 반환할 자료형, 이름과 매개변수(선택)가 필요합니다.물론 반환값이 없는 void 함수도 존재합니다.int max(int x, int y){ x > y ? return x : return y; return x;} int 라는 반환형과 max라는 이름, 그리고 괄호에 들어간 매개변수를 통해 함수를 만들었습니다.정말 신기하..
게임 프로그래밍 | C++ | 랜덤
·
개발/C++
개요저희 학교에선 자료구조 시간에서 C++ 문법을 배우고 게임 프로그래밍 시간에 배운 C++ 문법을 사용해서 게임을 만듭니다.물론 아직까지 게임이라곤 숫자 야구라거나 업다운 게임이라거나 유사 검강화하기 같은 콘솔 텍스트 게임이지만요... 이번에 게임 프로그래밍 수업에서 배웠던 랜덤에 대해 적어보려고 합니다.    rand() C++에선 기본적으로 rand 함수를 제공합니다.#include using namespace std;int main(){ int randNum = rand(); cout 0~999999... 까지의 숫자를 반환하는데 다시 실행해봐도 출력은 계속해서 41로 같은값이 나옵니다. 어? 이러면 안되는거 아닌가?이러면 이게 랜덤인게 맞나요? 반쪽짜리 아닌가? rand 함수에 매개변수가 들어가..
자료구조 | C++ | 문자열
·
개발/C++
개요오늘은 문자열에 대해서 배웠습니다.string 클래스와 각종 메서드에 대해서 배웠는데 반복자인지 뭔지는 이해가 조금 어렵지만코드를 보면 대충은 읽을 수 있게 됐죠. C#보단 C++이 이런부분에선 확실히 편한것 같습니다.    null 종료 문자열#include using namespace std;int main(){ char c[] {'h','e','l','l','o'}; cout  hello 라는 값이 담긴 char 배열을 출력해보면  이런 이상한 한자들이 같이 출력되는걸 볼 수 있는데 이건 C++이 문자열의 끝을 인식하지 못해서 이상한 값까지 읽어들이기 때문입니다. 그렇기 때문에char c[] {'h','e','l','l','o', '\0'};'\0' 문자로 null을 명시적으로 표시해줄 수 도 ..
자료구조 | C++ | 기본 개념
·
개발/C++
개요오늘부터 자료구조 수업에서 C++ 문법을 가르친다고 합니다.C++을 해본적은 없지만 문법 생긴게 참 기괴한데 오늘 한 교시 동안 만들고 해설했던 코드 조각은 이랬습니다.#include using namespace std;int main() { char arr[100]; cout > arr; cout 입출력을 쉬프트 연산자 같은거로 처리한다는 것부터 광기로 가득찬 언어 아닙니까?심지어 using을 안쓰면#include int main() { char arr[100]; std::cout > arr; std::cout 일일히 콜론 2개씩 붙여줘야 합니다..    #include 문장을 없애면 어떤 오류가 발생하는가?그래서 실제로 없애보았습니다.#include는 언어 자체에서 보유중인 기능을 사용하기 위해서..
자료구조 | C++ | 기초사항
·
개발/C++
개요2학년에 들어선 후 첫 자료구조 수업은 0. 기초사항 이라는 제목으로 진행되었습니다. 말 그대로 완전히 기초부터 짚고 들어가는 수업이였던 것 같네요. '프로그래밍 언어란 무엇인가' 부터 객체지향 프로그래밍, C++과 C#의 차이점 등등앞으로 효율적이고 간단하게 코드를 짤 수 있으려면 이 과목을 잘 들어야 한다는 느낌이 들었습니다. 그렇기 때문에 앞으로 블로그에서 자료구조 수업에 대해 정리를 계속해서 해나갈 것 같습니다.    C++과 C#의 차이점?아직 C++을 다뤄본적은 없지만 C++은 사용자가 메모리를 직접 할당하고 해제하는 식이고C#은 사용자 대신 GC(Garbage Collector)가 메모리를 자동으로 관리해줍니다. 그렇기 때문에 C#보다 C++이 안정성이 떨어지는 대신 효율적인 메모리 할당..