코딩59 C++ 공부 섹션11 상속 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션11 처음 상속을 배웠는대 약간 복잡성이 더해진 class인것 같다. 뇌를 자극하는 재미가 있는 단원인것 같다. 글을 다 쓰고나니 진짜 내 영혼을 갈아넣은듯한 느낌으로 포스팅 하였다. 누가보든 C++ 이전내용의 기반이 있다면 이해가능하도록 하나하나 서술하였다. ◆ 이번시간에는 상속(inheritance)에 대하여 집중적으로 배웠다. 효율적인 class의 사용법이며, 숙련되면 초기부터 디자인할때 상속관계를 생각하면서 구성한다 알려주셨다. ◆ 11-1 상속의 기본 (1/2) #include using namespace std; class Mother { int m_i; p.. CS/C++ 2022. 1. 16. C++ 공부 섹션10 객체관계 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션9 확실히 생각을 다시 곱씹어가며 한줄 한줄 블로그에 정리하며 공부하는 것 크게 도움되는 것 같다. 이번 시간에는 객체지향에 대한 보편적인 사용법과 방식들을 공부하게 되었다. class와 object들의 관계를 위주로 배우게 되었다. ◆ 10-1 class에는 크게 4가지의 관계들이 있었다. 구성, 집합, 연계, 의존 관계가 있었으며 각각에 대해서는 코드를 보면 더욱 명확히 히해할수 있다. 간단히 실생활 예로 먼저 생각해보면, 1. 구성: 뇌(부품)와 사람(전쳬) 에서는 뇌가 사람의.. CS/C++ 2022. 1. 16. C++ 공부 섹션9 연산자 오버로딩 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션9 이번시간에는 연산자 오버로딩에 대하여 배웠다. 함수오버로딩과 마찬가지로, 같은 연산자를 다르게 사용하는 방식이다. 원래 블로그에 자세한 정리글을 안올리는대 이번단원이 잘 이해가지 않아 하나하나 다시 뜯어가면서 설명하듯 글을 작성하였다. 이번단원이 강좌들의 시간은 짧았음에도 불구하고 은근 어려운 부분이 많은 단원 이였다. ◆ 9-1 산술 연산자 오버로딩 산술 연산자의 오버로딩에서는 총 4가지 방식을 통해 오버로딩이 어느 순간에 필요한지를 점차 알려주셨다. 방법 1) class 밖에 .. CS/C++ 2022. 1. 16. C++ 공부 섹션8 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션8 드디어 손꼽아 기다리던 객체지향에 대하여 공부할 수 있었다. 먼저 명품 C++ 에서 3단원인 객체지향을 읽어본후 강의 까지 듣느라 시간이 좀 걸렸다. 내일도 진도를 나가기 보단 복습과 LearnCPP를 읽고 예제문제를 풀어볼 생각이다. ◆ class에서 constructor를 만들때 다음 사진과 같이 default값을 지정해줄 수 있었다. ◆ 또한 초기화를 할때 constructor를 사용할때 값의 대입이 아닌, 멤버 초기화 목록을 사용할 수 있었다. ◆ 위임생성자는 다른 생성자.. CS/C++ 2022. 1. 16. C++ 공부 섹션7 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션7 이번단원에서 가장 흥미로웠던 주제는 함수의 오버로딩이다. 같은 함수명임에도 불구하고 다른 기능으로 사용할수 있다니. 정말 편리한 것이 아닌가 싶다!! ◆ 참조형을 반환값으로 사용하는 예를 볼 수 잇었다. 위의 사진에서는 반환값을 참조형으로 하여 값을 수정하는 예를 보이고 있다. 우선 메모리를 main함수 안에서 정의하여 get함수가 실행된후 stack에서 사라지는 오류를 피한다. 또한 get에서 my_array[ix]의 별명을 반환하고 있는것이다. 그 별명에 1024를 대입하니 원.. CS/C++ 2022. 1. 16. C++ 공부 섹션6 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션6 초중반부 까지의 포인터와 배열은 어렵지 않았는대 뒤에 for_each문 나오는 부분부터 조금 이해가 안갔다. 생소해서 사용법이 익숙하지 않은 것 같다. 내일은 진도를 빼지말고 섹션6의 후반부를 조금더 복습해야 겠다. ◆ enum을 배열에서 활용하는 방식이 독특하여 캡쳐해 두었다. enum 마지막 element로 NUM_STUDENTS가 있는대 이를 전체 학생수로 활용할 수 있었다. main에서 배열을 이를 활용하여 선언하는 것 을 볼수 있었다. ◆ 뭐 당연한거기는 한대 arra.. CS/C++ 2022. 1. 16. C++ 공부 섹션5 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션5 ◆ 어찌보면 코딩의 핵심이라 할 수 있는 단원이다. 이러한 흐름은 C에서부터 줄곳 공부해왔기에 큰 어려움이 없었다. ◆ do while문을 간만에 공부하게 되었다. 사실 이전에 C를 공부하면서 이러한 것이 있다는 것은 알았지만 do_while문을 사용해본적은 아직 없다. 크게 아직 필요한 순간이 없었던것 같다. 기존의 while문과는 달리 우선 한번은 실행한후 while문을 도는 방식이다. ◆ for문에서 맨앞칸을 비워도 된다는 사실에 충격을 먹었었다. 아니 돌이켜 생각해 보.. CS/C++ 2022. 1. 16. C++ 공부 섹션4 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션4 ◆ 주로 자료형에 관한 수업을 들었다. string에 대하여 처음 공부하게 되었으며, 신기한 auto형 또한 알게되었다. ◆ 전역변수 내용 자체야 어렵지 않으니 기억하고 있었다. 중요한것은 global scope 연산자 이다. 가령 위의 사진처럼 main함수 안에서 같은 변수명의 지역변수와 전역 변수가 둘다 사용된다면, int value = 1; 이후의 행부터는 value가 지역변수이다. 하지만 전역 변수를 사용하기 위해 변수 앞에 ::를 붙혀주면 이는 전역변수를 사용하는 것 이다.. CS/C++ 2022. 1. 16. C++ 공부 섹션3 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션3 ◆ 이번 단원에서는 연산자들에 대해 주로 배웠다. 대부분이 거의 C에서 배워 아는 내용이였지만 그중 또 새로운 내용도 있었기에 이러한 새로운 내용 위주로 집중하며 들었다. ◆ 간단한 실수의 산술 연산이다. 계산이 어려운것이 아니라 다음 코드에 중요한 점은 바로 피연산자의 어느 한쪽에 float형으로 cast를 한 경우 결과 값이 실수로 바뀐다는 점이다. 4개의 cout 구문에서 맨 첫줄의 코드는 나누기 연산자를 진행후 몫인 1이 결과값 이지만, 나머지 코드의 경우 float로 c.. CS/C++ 2022. 1. 16. C++ 공부 섹션2 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션2 ◆ 섹션2의 내용또한 어렵지 않아 약간은 긴장이 풀린 상태로 공부하게 되었다. 이전 C에서 거의 들었던 내용이라 새로운 지식이 아니다 보니 처음배울때보다는 긴장도가 조금 풀린것 같다. 하지만 이와 더불어 이미 아는것도 다시 들었을때 새로운 깨달음을 얻을수 있으며, 다시한번 생각해보는 과정 그 자체가 공부의 길임을 잘 알고 있기에 집중하려 노력했다. 이번 강의에서는 특히 초기화의 3가지 방식이 인상깊었던 단원인 것 같다. ◆ 이전 C에서 도 배웠던 내용이지만 나는 잘 사용해본적 .. CS/C++ 2022. 1. 16. C++ 공부 섹션1 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션1 ◆ 섹션1 의 내용은 몇가지를 제외하고는 C와 거의 동일한 내용이라서 크게 어려움 없이 1.5배속으로 빠르게 들었다. ◆ 기억남는 것 중 하나가 바로 initialization과 assignment의 구분이였다. 사실 C를 공부했기에 둘의 개념을 모르지는 않았다. 다만 둘은 약간은 혼용하여 사용하고 있었던 스스로를 반성할 수 있었다. 초기화의 경우 변수가 생성됨과 동시에 값이 바로 들어가는 것 이고, 대입의 경우에는 선언된 변수에 추후 값을 넣어주는 것 이다. 둘간의 차이가 없어.. CS/C++ 2022. 1. 16. [자료구조] C++로 쉽게 풀어쓴 자료구조 : 12장, 가중치 그래프 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 이번 12장 책 코드에 중간중간 오류코드들이 보인다... 이해를 조금 방해하는 수준이다. 1) 12장. 가중치 그래프(Weighted Graph) 가중치 그래프는 이전에 만들었던 AdjMatGraph class를 상속하여 사용한다. 이전에 사용했던 인접행렬에서는 간선이 있으면 1 없으면 0을 행렬에 저장했지만, 이번에는 가중치값을 행렬에 저장하였다. 일정 범위를 두고 그 범위 안의 값이면 간선이 있고, 이를 벗어나는경우는 간선이 없다고 여긴다. WGraph.h #pragma once #include "AdjMatGraph.h" const int inf = 100; class WGraph : public Ad.. CS/Data Structure (2021-1) 2022. 1. 15. 이전 1 2 3 4 5 다음