본문 바로가기

Programing

(39)
[C++][Study] 내가 만드는 문자열 클래스(연산자오버로딩, 복사생성자) 우리가 만든 MyString 문자열 클래스에 == 연산자 오버로딩하여 문자열 비교 기능을 추가해보자 연산자 오버로딩이란? +, -, ==, [ ]와 같은 기본적으로 정의되어 있는 연산자 들을 우리의 입맛에 맞게 변형해서 사용할 수 있는것을 의미 operator 연산자 기본 구조는 다음과 같다. "(리턴타입) operator (연산자)(연산자가 받는인자)" 변수 정의 1) char* string_content : 문자열 데이터를 가르키는 포인터 2) int string_length : 문자열 길이 3) int memory_capacity : 현재 할당된 용량 char* string_content; int string_length; int memory_capacity; 생성자 소멸자 정의 1) 'a', 'b..
[C++][Study] 내가 만드는 String 문자열 string 클래스를 직접 만들어, 우리가 string a = "a" 이렇게 쉽게 작성했던 것들이 어떻게 동작하는지 이해를 해보고자 한다. 먼저 정의 부분은 다음과 같다. #include class string { char *str; int len; public: string(char c, int n); // 문자c 가n 개있는문자열로정의 string(const char *s); string(const string &s); //~string(); void add_string(const string &s); // str뒤에 s를 붙인다. void copy_string(const string &s); // s를 복사한 값을 str에 대입한다. int strlen(); // 문자열 길이 리턴 }; 변수는 *s..
Mac OS에서 MySQL 연동하기 MySQL은 공식 사이트에서 설명에 나오는대로 차근차근히 하면 된다. 어려우면 하기 블로그를 참고하면 좋을 것 같다. https://daimhada.tistory.com/121 MySQL 설치하고 실행하기 (on Mac) 공부한 내용을 기록하고 정리하기 위해서 글을 쓰고 있습니다. 부족한 내용은 지속적으로 추가, 수정될 수 있습니다. SQL 언어를 실습해보기 위해, Mac 운영체제에 MySQL을 설치하고 실행해보도록 daimhada.tistory.com 설치가 완료되면 환경설정에 MySQL 아이콘이 생성이 되고, 클릭해서 들어가면 아래와 같이 현재 버전과 실행되고 있는것을 알수 있다. 이제 터미널을 이용해서 MySQL이 설치 된 곳의 bin폴더로 이동하여 root권한으로 MySQL에 접속 하면 된다. 터..
Xcode & SFML 셋팅하기 https://youtu.be/WOyp5n2FmZY 초기 셋팅은 위에 내용 참고하고 이거 진행 후에 에러가 있었던 부분에 대해서 추가 셋팅 해야하는 방법에 대해 적는다 우측에 Project Document의 project format을 xcode 12.0-compatible로 변경한다 (최신 버전) Build Phase 부분에서 Runscript부분에 For install builds only에 check를 해준다 마지막으로 권한 허용을 해줘야함 이렇게 모든곳 이라는 항목이 없으면 터미널을 이용하여 권한 설정 을 해야함 모든 곳 활성화 : sudo spctl --master-disable 모든 곳 비활성화 : suto spctl --master-enable 모든곳 활성화/비활성화 상태 확인 sudo sp..
[C++] C++와 표준 라이브러리 초단기 속성코스(포인터, 참조, const, 타입추론) 출저 : 책, 전문가를 위한 C++ 메모리 공간을 적당히 할당하기만 하면 어떠한 값이라도 힙에 저장할 수 있다. 예를 들어 정수값을 힙에 저장하려면 정수 타입에 맞는 메모리 공간을 할당해야하는데 이때 다음과 같이 포인터를 선언해야 한다. int* myIntegerPointer; int 타입 뒤에 붙은 별표(*)는 이 변수가 정수 타입에 대한 메모리 공간을 가르킨다는 것을 의미한다. 이 때 포인터는 동적으로 할당된 힙 메모리를 가리키는 화살표와 같다. 아직 값을 할당 하지 않았기 때문에 포인터가 구체적으로 가리키는 대상은 없다. 이를 초기화 되지 않은 변수 라 부른다. 변수를 선언한 후에는 반드시 초기화 해야한다. 특히 포인터 변수는 초기화 하지 않으면 어느 메모리를 가르키는지 알수 없기 때문에 반드시 초..
[C++] C++와 표준 라이브러리 초단기 속성코스(반복문, 스트링, 스택 & 힙) 출저 : 책, 전문가를 위한 C++ ① 반복문 컴퓨터는 같은 일을 계속 반복하는데 뛰어나다. 이를 위해 C++는 while, do.while,for, 범위기반 for 등 네가지 반복 메커니즘을 제공한다. ② while문 while문은 주어진 표현식이 true가 될 때 까지 일정한 코드 블록을 계속해서 반복한다. 다음 코드는 This is silly. 라는 문장을 다섯번 출력한다. #include int main() { int i = 0; while (i < 5) { std::cout
[C++] C++와 표준 라이브러리 초단기 속성코스(함수, 배열, 벡터) 출저 : 책, 전문가를 위한 C++ 함수 규모가 어느 정도 큰 프로그램에서 코드를 모두 main()안에 담으면 관리하기 힘들어진다. 프로그램의 가독성을 높이려면 함수 단위로 간결하게 나눠서 작성해야 한다. C++에서 함수를 사용하려면 반드시 사용하려는 위치보다 앞에서 선언해야 한다. 특정한 파일 안에서만 사용할 함수는 선언과 구현(정의) 모두 소스 파일 안에 작성한다. 반면 함수를 다른 모듈이나 파일에서도 사용해야 한다면 그 함 수는 헤더 파일에 작성하고 구현은 소스파일에 작성한다. ※ 함수를 선언하는 문장을 함수 프로토타입 또는 함수 헤더라 부른다. 함수의 구체적인 내용은 보지 않고, 그 함수에 접근하는 방식만 표현한다는 의미가 강하다. 또한 함수의 리턴 타입을 제외한 함수 이름, 매개변수 목록을 함수..
[C++] C++와 표준 라이브러리 초단기 속성코스(조건문) 출저 : 책, 전문가를 위한 C++ 조건문을 사용하면 어떤 값이 참 또는 거짓인지에 따라 주어진코드를 실행할지 결정할 수 있다. C++ 에서 지원하는 조건문 중에서도 대표적인 세 가지 구문인 if/else문, switch문, 조건 연산자를 소개 한다. 1) if/else문 가장 흔히 사용하는 조건문은 if문이며, else문과 함께 쓸수 있다. if문에 나온 조건이 참이면 if문에 속한 코드를 실행한다. 조건이 참이 아니면 if 블록을 빠져나와 그 뒤에 나오는 문장을 실항하거나, else문이 명시돼 있다면 else문에 속한 코드를 실행한다. if(i > 4) { // 뭔가 작업한다. } else if ( i > 2) { // 다른 일을 한다. } else { // 다른 일을 한다. } if 문 뒤에 소괄호..