목록기타 (47)
YS's develop story

안녕하세요 ~ C++에서 디폴트생성자 관련해서 실수했을때 발생하는 에러를 정리하고자 글을 작성합니다. 바로 아래 코드를 확입합시다. #include using namespace::std; class Practice { private: int num; public: Practice(int num = 10) { this->num = num; } void showNum() { cout

안녕하세요 ~ 오늘은 간단하게 assert 매크로에 대해서 정리해봤습니다. assert 매크로는 C++에서는 cassert 헤더 파일에 정의되어 있으며 C에서는 assert.h 헤더파일에 정의되어 있습니다. 이 매크로는 정해진 조건에 맞지 않을 때 프로그램을 중단합니다. 즉, assert에 지정한 조건식이 false일 때 프로그램을 중단하며 true일 때는 프로그램이 계속 실행합니다. 이는 잘못된 값이 입력되었을 때 프로그램을 사전에 중단하여 치명적인 버그를 예방하는데 사용합니다. 아래의 예제 코드를 살펴봅시다 ~ #include #include using namespace ::std; void positiveInteger(int poi) { assert(poi > 0); cout

안녕하세요 ~ 오늘은 기본 인수 재정의라는 에러와 함께 함수의 디폴트 값은 함수의 선언에 작성해야 한다는 것을 정리하기 위해 글을 씁니다. 바로 예제 코드를 확인해 보겠습니다~ 우선 헤더파일에 hello함수 선언을 작성해주고, 함수의 디폴트 값을 작성해줍니다. 디폴트 값이란 사용자가 함수의 매개변수로 아무런 값을 입력하지 않았을 때 자동으로 저장되는 값 입니다. 즉, 사용자가 hello함수를 호출 할때 매개변수로 아무런 값을 지정해 주지 않으면 자동으로 i가 10으로 설정되는 것이죠. void hello(int i=10); 그리고 함수의 정의를 작성해 줍시다. void hello(int i=10){ cout

안녕하세요 ~ 오늘은 간단하게 char[], char *의 정리하는 글을 쓰고자 합니다. 아래 코드를 살펴봅시다 !~! int main() { char* name1 = "Yu sang blog"; char name2[] = "Yu sang blog"; printf("%s\n", name1); printf("%s\n", name2); return 0; } 위 코드의 실행결과는 아래와 같습니다. 두 코드의 실행결과는 같습니다.! 하지만 명백하게 차이점이 있습니다. char * name1은 "Yu sang blog"가 저장되어 있는 메모리의 주소를 저장하는 것이고 char name2[]는 char형 배열에 각각의 문자가 그대로 저장되어 있는 것이죠. 그래서 name2의 문자열의 내용을 아래와 같이 바꿀 수 있..

C++ ) Const reference parameter , Value parameter 의 비교 오늘은 Const reference parameter와 Value parameter을 비교해보고 각각 어느 상황에 쓰이는지 정리해 보았습니다. 참고로 Parameter은 매개변수라는 의미입니다 ! 우선 아래의 Value parameter을 살펴보죠 ! 여기 multiply라는 함수가 있습니다. 이 함수의 parameter는 Value parameter입니다. 원래의 값을 복사해서 함수에서 호출을 하는 것이죠. int multiply(int valueParameter) { return valueParameter*valueParameter; } 다음은 아래의 Const reference parameter을 살펴..

안녕하세요 ~ c++ 공부를 하다가 헤더파일 를 추가하고 사용할 수 있는 copy에 대해서 정리하고자 글을 작성합니다. 우선 헤더파일을 추가 한 다음.. #include #include #include #include #include using namespace::std; 아래와 같은 형식으로 copy 함수를 사용할 수 있습니다. copy함수는 첫번째 인자부터 두번째 인자까지의 모든 원소들을 세번째 인자의 시작 위치로 복사하는 함수 입니다.!! array[0] 부터 array[3]까지의 값을 복사해서 array2[2]이후부터에 저장하라는 의미입니다. copy함수의 인자값을 조금 바꾸어 주었는데, array[0]부터 array[3]까지의 값이 array2[0] 뒤에부터 저장된 걸 확인할 수 있습니다. 마찬..

c++ 공부중 발생한 에러.. 뭐가 잘못된건지 잠깐 생각했는데 너무 바보같은 실수였던 것 Point 클래스를 생성할 때 생성자를 = 을 사용하는 실수를 했다.. 이렇게 수정하면 에러가 해결된다. Point operator-(Point& pos1, Point& pos2) { Point pos(pos1.xpos - pos2.xpos, pos1.ypos - pos2.ypos); return pos; } 이런 바보 같은 실수는 다시 하지 말자 ㅎㅎ