본문 바로가기

C++2

가상함수 - 동적 바인딩과 정적 바인딩 가상함수란? 가상함수를 알아보기 전에 바인딩에 대해 알아보자. 바인딩이란? 프로그램을 실행하면 컴파일을 하고 실행코드가 만들어진다.실행코드에서 함수 호출부분을 보면 함수가 그대로 정의되어 있지 않고 함수가 정의된 부분의 주소값이 있어서 함수를 찾아가서 실행할 수 있다.이 때 함수 호출부와 정의부를 연결시켜주는 것이 바인딩이다. 바인딩에는 정적 바인딩과 동적 바인딩이 있는데 바인딩이 결정되는 시점에 따라 나뉜다.정적 바인딩은 컴파일 시에 바인딩 할 주소가 결정되어 함수 호출 시에는 이미 결정되어 있고,동적 바인딩은 컴파일 시에 바인딩 할 주소가 결정되지 않고 함수 호출 시에 결정된다. 일반 함수는 정적 바인딩을 하며 컴파일 시에 인스턴스의 타입에 따라 바인딩 될 주소가 결정되기 때문에 클래스를 상속받아 함.. 2017. 5. 31.
네임스페이스(namespace)란? C++를 공부해본 사람이라면 namespace가 무엇인지 들어보았을 것이다. C++에서는 printf 대신에 iostream에서 제공하는 cout을 쓴다고 배웠다. 그런데 cout을 쓰기 위해서는 전처리기 밑에 using namespace std; 를 적어놓아야 사용할 수 있다. 아니면 std::cout으로 사용을 해야 한다. 이미 알고 있겠지만 namespace에 대해 공부해보자.우리가 회사에 가게 되면 개인프로젝트는 절대 없다. 전부 팀으로 진행되는 프로젝트이고 여러 사람이 코드를 짜서 나중에 합치거나 좋지 않은 코드를 버리거나 한다. 근데 두 개의 팀에서 작업을 한 뒤 나중에 코드를 합쳤을 때를 생각해보자. 두 개의 팀에서 작성한 코드 중 클래스 이름이나 함수의 이름이 같은 것이 있을 수 있다. 실.. 2016. 11. 11.