본문 바로가기
320x100

Study/C++8

[C++]연산자 중복(연산자 오버로딩) 연산자 중복이란 무엇인가? 연산자 중복은 C++ 에서 제공하는 기본적인 자료형들(예를 들어 int, double, float)말고 다른 클래스에도 연산자를 이용할 수 있도록 하는 문법이다. string 클래스도 이미 연산자 중복이 적용되어 있다. string은 + 연산자를 통해 s1과 s2를 이어붙이는 역할을 한다. 어떻게 작동하는가? 만약 내가 어떤 객체 v1, v2에 대해 v1 + v2라고 쓴다면, 컴파일러는 이를 v1.operator+(v2) 의 형태로 호출하여 반환값을 반환한다. 어떤 연산자에 대해 작동하는가? +,-,++(전위, 후위),--(전위, 후위),=,==,[],* 등등 다양한 연산자를 오버로딩하여 사용할 수 있다. 예시) #include #include using namespace st.. 2020. 12. 14.
[C++]업캐스팅과 가상함수, 순수가상함수 업캐스팅이란? 클래스 객체를 기반 클래스(부모 클래스)로 변환하는것 -> 다형성 구현을 위해 필요 기본적으로는 업캐스팅 시 원래 자식 클래스의 메소드는 접근이 불가능 그러나 virtual 키워드를 통해 부모 클래스에서 가상 함수임을 지정해주면 자식 클래스의 해당 함수에 접근이 가능하다. 이는 컴파일시 호출될 함수를 결정하는 정적 바인딩(static binding) 이 아닌 런타임시 호출할 함수를 결정하는 동적 바인딩(dynamic binding)을 사용하기 때문이다. 이렇게 클래스를 생성할 때 부모 클래스의 메소드에 virtual 키워드를 붙이지 않는다면, parent 포인터에 자식 객체를 담고 WhatIsMe() 함수를 호출해도 부모 클래스의 메소드가 호출된다. 그런데 만약 virtual 키워드를 부모.. 2020. 12. 13.
[C++]STL Vector 자주 쓰는 기초적인 코드들 벡터(Vector) 란? C++ 에서 vector는 STL 라이브러리에 저장된 시퀀스 컨테이너. 동적으로 크기가 지정되기 때문에 자동으로 크기가 늘거나 줄어든다. 속도 면에서는 배열보다 느리다고 하지만, 편리하게 사용할 수 있다는 장점이 있다. Vector 생성하기 가장 기본적인 vector의 4가지 생성 방식이다. 자주 쓰는 맴버 함수 이정도 맴버 함수만 알아도 이를 사용하는데에 큰 무리가 없을 듯 하다. 벡터의 값 얻어오기 첫번째 방법. 그냥 i를 v3의 크기 까지 돌린다 두번째 방법, Iterator 를 이용하여 값을 출력한다. 2020. 12. 12.
[C++,MFC]MFC 프로그래밍이란 무엇인가? + 기본 컨트롤러 Java 해야하는데 학교에서는 C++을 가르친다. 그리고 이번에 교수님이 C++과 MFC라이브러리를 이용한 윈도우 프로그램에 대하여 설명해 주셨다. 솔직히 조금 뜬금없었다. MFC가 뭐지? 갑자기 이걸 왜 하는거지???? 궁금하여 검색해보니... 마이크로소프트 파운데이션 클래스 라이브러리 (Microsoft Foundation Class Library)는 C++용 프로그램 라이브러리이다. 윈도용 응용 프로그램의 통합 개발 환경인 마이크로소프트 비주얼 C++에 부속되는 클래스 라이브러리이다. -위키백과 이렇게 나와있다. 그냥 간단하게 C++로 GUI가 있는 윈도우 프로그램을 만드는 라이브러리라고 생각하면 될 것 같다. 아마도 교수님은 매번 검은색 콘솔창만 보면서 코딩하는 우리를 위해 GUI라는 것을 맛보게.. 2020. 11. 24.