CODING27 C++독학 14일차 - C++템플릿 C++ 넘 오랜만에 올리는걸요,,, 이전에 공부한거 올립니당,, 요즘은 파이썬을 공부할까 생각중,,!! (C++ 넘어려움) 벡터는 가변길이 배열로 사용자가 크기를 마음대로 늘리고 줄일 수 있는 자료형이다. 스택은 자료구조에서도 배웠지만 pop과 push로 LIFO형태의 자료형이다. 문제점은 데이터타입이 바뀔때마다 다른 벡터를 만들어야 한다는 점이다. 이렇게 벡터를 하나 만든다고 했을 때 위의 주석처럼 문제가 발생하게 된다. 이를 해결하고 싶을 때 T* data; 이렇게 하고 때에 따라 T가 바뀌면 얼마나 좋을까! 하는 생각을 할 수 있는데 이런 템플릿 기능을 C++에서 지원하고 있다(놀람) C++ 템플릿 템플릿은 어떤 물건을 찍어내는 틀이다. 사용자가 원하는 타입을 넣어주면 알아서 코드를 찍어내는 틀이라.. 2021. 11. 8. C++독학 13일차 - C++에서의 파일 입출력 fstream fstream은 istream이나 ostream 클래스보다 지원하는 기능이 많아서 이를 상속받아 작성되었다. 각각을 상속받은 것이 ifstream과 ofstream이다. 이를 모두 포함하는 라이브러리가 fstream이다. 이런식으로 받아주면 된다. 아주 긴 문자가 있는 텍스트를 받을 때에는 다음과 같이 처리해주면 된다. 텍스트 파일을 쓰는 방법은 위에처럼 하면 된다. out 객체를 생성할 때 옵션이 여러개가 있는데 여기서 나온 app 말고도 1. ios::ate : 자동으로 파일 끝부터 읽기, 쓰기 한다. 2. ios::trunc : 파일 스트림을 열면 기존 내용이 모두 지워진다. 3. ios::in, ios::out : 파일에 입력할지 출력할지 지정한다. 문자열 스트림 이렇게! 사실 자료.. 2021. 8. 22. C++ 독학 12일차 - 가상함수 구현원리, 다중 상속, istream, 형식플래그, streambuf, 조작자 가상함수의 구현원리 가상함수를 배우다보면,,, 모든 함수를 virtual 처리하면 안되나? 하는 생각이 든다. virtual로 함수를 처리하면 지들이 알아서 눈치껏 함수들을 처리해주니까. 실제로 자바는 모든 함수들이 virtual 함수로 선언된다고 한다. 그런데 c++는 사람들에게 virtual 키워드로 직접 선언하게 하는 이유는 오버헤드가 존재하기 때문이다. 일반 함수를 호출하는 것보다 가상함수를 호출하는데 시간이 더 오래 걸린다. virtual 클래스가 어떻게 구현되는지 생각해보자. 이런 클래스를 가정해보자. 컴파일러는 가상함수가 하나라도 있으면 가상함수 테이블을 만든다. 이렇게 구성이 된다. 그러면 가상함수를 실행하려 할 때에는 먼저 해당하는 클래스를 가서 함수를 탐색하는데, 가상함수면 직접 함수를.. 2021. 8. 17. C++ 독학 11일차 - 상속, protected, is-a, has-a, virtual 이번주는 매일 매일 C++ 공부를 해서 올릴겁니다..!(원래 8월 8일까지 끝내기로 했는데 반도 못해서 그런건 아니구..) 다음주부터는 매일 오픽학원도 가야해서 잘 올릴 수 있을지 잘 모르겠어서요ㅎㅎㅎ 상속 이전 10일차에서 employee 클래스에서 manager 클래스를 추가해주었다! 사실 manager 클래스 = employee 클래스 + 근속연수 이런 느낌이다보니 거의 겹쳐서 복사 붙여넣기를 해야하는 경우가 많았다 C++에서는 이런 경우에 다른 클래스 내용을 그대로 포함할 수 있는 작업을 가능하게 했다. 그것이 바로 상속! 간단한 클래스를 만들어서 상속이 어떻게 생겼는지 파악해보자 주석을 참고하면 이해할 수 있다. 상속하는 클래스가 Base고 상속 받은 클래스가 Derived이다. 이렇게 코드를 .. 2021. 8. 10. 이전 1 2 3 4 5 6 7 다음