본문 바로가기

객체지향 프로그래밍

[C++] 상속과 다형성 (Inheritance & Polymorphism) 우선 여기서는 상속과 다형성에 대한 간단한 의미만 정리 하고 넘어갈 것입니다. 다음에 상속과 다형성에 대해서 더 자세한 포스팅을 할 것입니다. 상속 (Inheritance) : 상속은 기존의 클래스를 토대로 해서 새로운 클래스를 만드는 방법이라고 할 수 있다. 객체지향 프로그래밍을 사용해서 워드 프로세서를 만드는 경우를 생각해보자. 고객으로부터 웹페이지 형식으로 문서를 저장할 수 있게 요구 받았다고 하면, 이때는 문서 저장과 관련된 기존의 클래스를 조금 개조해서 웹 페이지 형식으로 저장하게 만들 수 있다. 이렇게 기존의 클래스를 조금 고쳐서 새로운 클래스를 만들고 싶을 때 상속을 사용할 수 있다. 일상생활에서의 상속은 부모의 재산이나 부채를 그대로 이전하는 것을 의미하는데, 객체지향 프로그래밍에서의 상속.. 더보기
[C++] 클래스와 static C 에서의 static : C언어에서 static을 사용했던 이유는 전역변수는 프로그램어느 곳에서 접근 가능하지만, 지역변수에다가 static을 붙여주면, 지역변수가 전역변수의 특성을 지니게 하면서 접근할 수 있는 범위에 제한을 둔다는 특징이 있기 때문이었다. Class, Static 멤버의 등장 : C++에서는 전역이라는 개념이 존재하지 않는다. 그럼 왜 C++은 왜 전역을 쓰지 않나? 기본적으로 전역변수는 접근 범위가 제한되어 있지 않기 때문에 프로그램 관리가 어려운 점도 있지만, 근본적으로 OOP에서는 전역이라는 개념이 존재하지 않기 때문이다. 그래서 전역 변수와 전역 함수를 일부 대체하기 위해서 static 멤버 라는 개념이 등장한 것이다. #include using namespace std; i.. 더보기
[C++의 특징 -5] This 포인터와 Friend This 포인터란? : This Pointer란 객체가 멤버함수를 호출할 때 자동으로 멤버함수에게 전달되는 포인터이며, 호출한 객체를 가리키는 포인터를 말한다. 흔히 자기 참조 포인터(자기 자신을 가리킬 수 있는 포인터)라고 불리우며, 멤버 함수에게만 this pointer가 전달된다.(Friend 함수는 멤버 함수가 아니므로 this pointer가 전달되지 않는다. Static 함수도 마찬가지이다.) 아래의 예제를 보면 금방 감이 올것이다. #include using namespace std; class Person { public: Person* GetThis(){ return this; //this 포인터를 리턴. } }; int main() { Person *p1 = new Person(); c.. 더보기