본문 바로가기
반응형

전공공부30

[C++] 13. C++ Template(마지막 포스팅!) C++에서 탬플릿(Template)는 함수나 클래스에 가변타입을 정의하여 사용 시 그 내용을 결정하는 것입니다.PPT에서도 탬플릿이라는 기본 틀들이 있습니다.그것들은 받아서 각자 자신에 맞게 사용할 수 있습니다. 즉, 기본틀은 있지만, 사용자의 필요에 따라 타입을 결정하는 것보고 Template라고 합니다. 아래 예시는 int 타입과 float 타입 두 숫자를 더하는 함수가 2개가 있었습니다.그것을 Template를 통하여 하나의 함수로 사용하고 매개변수를 통해 필요한 함수로 사용할 수 있습니다. 배열의 경우 정적으로 크기를 정해놓는 것이기 때문에 동적으로 사용하는 template를 사용할 수 없습니다.모든 매개변수가 T일 필요는 없므녀, 필요한 곳만 T로 작성해주면 됩니다.아래 예시를 보시면 아시겠지만.. 2024. 7. 4.
[C++] 12. C++ 파일 입출력 C++에서도 C언어의 파일입출력과 동일합니다.결국 Stream 객체를 통해 입출력을 진행하는 것이고 사용방법은 동적할당과 같게 생각하시면 됩니다.File 객체를 선언하고 open하여 사용한 뒤 close 해줍니다. 아래 예제는 inFile.txt에 있는 숫자 2개를 받아서 outFile.txt로 출력하는 과정입니다.필요에 따라 file mode를 정할 수 있습니다.Read-Only 형태로 파일을 오픈 할 것인지기존 파일을 유지하고 끝에서부터 기록할 것인지 등.. 기본 예제를 통해서 직접 코드를 사용해보며 테스트 해보세요어떤 코딩이던 직접! 해보는 것이 결국 자신의 것을 만드는데 제일 도움이 될 것입니다. 기존에 포스팅했떤 C언어 파일 입출력도 참고해주세요!!2024.02.29 - [전공공부/C언어] - .. 2024. 7. 3.
[C++] 11. C++ Class Virtual Function 부모 객체는 자식 객체에 넣을 수 있고 자식 객체는 부모 객체에 넣을 수 없습니다. 왜지?? 부모객체가 더 상위 개념이면 품을 수 있는거 아닌가요??답은. 자식이 더 많은 멤버를 가졌기 때문입니다. 따라서 대입연산자를 사용하면 Slicing / 즉, 멤버가 일부 잘리는 문제가 발생됩니다. 포인터를 사용하면 대입 가능합니다!하지만 단순한 주소 참조가 되어 버리기 때문에 멤버에는 접근이 불가하고재정의된 함수를 사용할 시 잘못된 호출이 되어버립니다.이러한 문제를 해결하기 위해서는 virtaul 함수를 사용합니다.virtual 함수는 Dynamic(late) Binding이라고 말합니다.동적으로 늦게, 객체의 외부가 아닌 내부를 보고 판단하는 함수입니다. 사용방법으로는 부모의 멤버함수에 virtaul keywo.. 2024. 7. 3.
[C++] 10. C++ Class 상속(Inheritation) C++에서 상속은 매우 중요한 개념입니다.상속이란 여러 클래스의 공통된 부분을 하나의 클래스로 합쳐서 간략히 표현하는 것입니다. 말그대로 부모 클래스(Base, Super, Parent Class)의 멤버변수와 함수를자식 클래스(Derived, Sub, Child Class)가 사용하게 하고 추가로 멤버변수 및 함수를 정의할 수 있습니다. 즉, 코드 재사용성, 확장성, 유지 보수성 이것이 클래스 상속의 중요한 점입니다. 아래 PPT를 보면 상속에서는 부모 Class를 정의하고 자식 Class 뒤에 " : public 클래스이름 "으로 작성합니다.뒤에를 public이나 protected, private에 따라서 멤버변수 및 함수의 접근여부가 달라집니다. 따라서, 절대 생각하면 안됩니다. (생략시 priva.. 2024. 7. 2.
반응형