본문 바로가기

전체150

연산자 오버로딩 연산자를 오버로딩하는 방법은 크게 두가지의 형태로 나뉜다. 첫번째는 멤버 함수에 의한 오버로딩이고, 두번째는 전역 함수에 의한 오버로딩이다. p+3 == p.operator+(3) p+3 으로 하면 p.operator(3)으로 해석이된다...약속이다 ..ㅠ. 멤버 함수에 의한 연산자 오버로딩에 해당된다. ① 멤버 함수로 오버로딩 Point Point::operator+(const Point& p)const ② 전역 함수로 오버로딩 Pointoperator+(const Point& p1,const Point& p2) =>약속......;;;;;;; p1 + p2 -> 멤버함수로 오버로딩된경우 [ p1.operator+ (p2) ] p1 + p2 -> 전역 함수로 오버로딩 된경우 [ operator+ (p1.. 2009. 2. 6.
클래스 멤버함수는 // virtual의 원리 // 다중상속 * 다시 봐야될듯.ㅠ -함수 포인터 - ○함수 포인터는 함수의 시작 지점의 주소를 포함하는 변수이다. ○프로그램을 컴파일할 때 프로그램에 있는 각 함수의 시작 지점을 생성하고 프로그램이 링크되면 함수가 참조될 때마다 호출되는 물리적 주소에 해당한다. ○시작 지점은 주소이기 때문에 포인터 변수가 포인터를 이용하여 함수를 호출하는 것이 가능하다. ○함수를 가리키는 변수를 만들기 위해서는 함수의 반환 형과 같은 형을 가지는 포인터를 선언하며, 이포인터는 어떠한 매개변수 보다도 앞에 선언해야 한다.. int (*p)(int a, int b) ; - *p 주위에 있는 괄호는 C의 우선 순위 규칙 때문에 반드시 필요하다. - 객체생성시 : 객체가 생성되면, 멤버 변수는 객체내에 존재한다. 그러나 멤버 함수는 메모리으 한 공간에 존재 하.. 2009. 2. 5.
순수(pure) 가상함수와 추상(abstract)클래스 virtual int GetPay()=0; 2009. 2. 4.
Static Binding & Dynamic Binding 1] 오버라이딩의 이해 BBB 객체 void AAA::fct(){..} void BBB::fct({..} 위 표와 같이 BBB 객체안에 AAA 클래스에 선언된 fct 와 BBB클래스에서 정의한 fct 함수가 잇다고 하자! 그리고 BBB클래스스의 fct함수는 AAA클래스를 가르키나다. 즉 AAA클래스가 base클래스이고 BBB 클래스가 Dervied클래스 이다./ BBB클래스의 fct함수가 AAA 클래스의 fct 함수를 가리킨다. 이처럼 Base클래스에 선언도니 형태의 함수를 Derived 클래스에서 다시 선언하는 현상을 가리켜 오버라이딩(overriding) 이라 한다. 이것을 실행하면 BBB클래스의 fct함수가 호출된다. 즉 오버라이딩은 이전에 정의된 함수를 가리는(hide) 특성을 지닌다고 할수 있다.. 2009. 2. 3.