본문 바로가기

분류 전체보기88

C++ 독학 6일차(7/24) - 소멸자, 복사생성자 씹어먹는 c++에서는 스타크래프트 프로그램을 만들어가며 c++을 설명해주고 계신데.. 본인은 스타크래프트를 한번도 안해봤고, 내용도 모르고, 관심도 없기 때문에 그냥 내식대로 공부하려 한다 ㅎㅎ 재미가 없어진다는 단점은 있겠지만, 빨리 마스터하고 백준을 풀어야겠따...(근데 지금까지 한 내용이 너무 적어서 진도를 빨리 빼야겠다고 생각했다.) 2주안에 끝낼게요.. 네.. 8월 7일까지요.. 일단 그런 경우가 있다. c언어에서도 다룬 내용이지만 많은 학생의 정보를 다루고 싶은데 사용자가 몇명의 학생을 다룰 것인지 정해버리지도 못하는 경우가 있다. 이럴때 student1, student2 .... 이렇게 선언하다가는 학생이 1235명이면 정말 끔찍하다. 이 해결책이 배열로 정해버리면 된다는 것이다. Stude.. 2021. 7. 26.
C++ 독학 5일차 - 객체 지향 프로그래밍, 함수의 오버로딩 객체란 변수들과 참고자료로 이루어진 소프트웨어 덩어리이다. 이 때 객체가 현실 세계에서 존재하는 것들을 나타내기 위해 추상화라는 과정이 필요하다. 컴퓨터 상에서 현실 세계를 정확히 나타낼 수 없어서 적절하게 컴퓨터가 처리하도록 바꾸는 것이다. 객체는 자기 정보를 나타내는 변수(instance variable), 이를 가지고 작업을 하는 함수(instance method)로 둘러싸여있다. 변수들은 외부로부터 보호되고 있다. 외부에서 어떤 객체의 instance variable 값을 바꾸지 못하고 객체의 instance method로만 값을 바꿀 수 있다는 뜻이다. 이렇게 외부에서는 instance variable 값을 못바꾸고 항상 instance method로 조절하는 것을 캡슐화라고 한다. 캡슐화는 객.. 2021. 7. 23.
C++ 독학 4일차 - 레퍼런스 후반부, new와 delete 어제 너무 놀아서.. 공부를 거의 못했기 때문에 이어서 작성해볼게요 주석으로 달아두면 더 보기 편할 것 같아서 포스팅 방식을 바꿔봤어요 레퍼런스를 리턴하는 함수 오류가 생기고 런타임 오류가 발생합니다. 문제점은 주석에도 있다시피 function의 리턴타입은 int&인데 리턴하는 function안에 정의되어있는 a는 리턴과 함께 사라진다. 원래 참조하고 있던 변수가 이미 사라져 오류가 발생하게 된다. 이것이 dangling reference. 레퍼런스를 리턴하는 함수에서는 지역변수의 레퍼런스를 리턴하지 않도록 조심해야 한다.(사라지니까) 외부변수의 레퍼런스를 리턴하는 것은 다음과 같이 가능하다. 이렇게 참조자를 리턴하는 경우에는 레퍼런스가 참조하는 타입의 크기와 상관없이 주소값 복사로 전달이 끝나기 때문에.. 2021. 7. 22.
C++ 독학 3일차 레퍼런스 도입 이제부터 C++을 시작하는 기분이 든다. 새로운 개념인 참조자에 대해서 공부해볼 거니까! 참조자 하면 &가 생각나곤 하는데, 내가 생각하는게 아니겠지? 무시하고 넘어가봅시다. 위와 같이 코드를 입력하면 차례대로 5와 3이 출력된다. 이전에 했던 것들이기도 하고 c언어에서도 볼 수 있었던 코드라 어렵지 않다. change_val함수의 인자 p에다가 number의 주소값을 전달해서 *p를 통해 number을 참조하여 number값을 바꿨다. c언어에서 어떤 변수를 가리키고 싶다면 포인터를 이용했다. c++에서는 다른 변수나 상수를 가리키는 방법으로 이 방법 말고도 다른 방식을 제공한다. 그것이 바로 참조자, 레퍼런스이다. 이것이 바로 레퍼런스를 이용한 코드이다. 한줄씩 분석하며 공부해보자. 5 | int a.. 2021. 7. 20.