본문 바로가기

반응형

오버로딩

(5)
[문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 1 : 객체 포인터의 참조관계 (객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수, OrangeMedia 급여관리 확장성 문제의 1차적 해결과 함수 .. [문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 1 : 객체 포인터의 참조관계 (객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수, OrangeMedia 급여관리 확장성 문제의 1차적 해결과 함수 오버라이딩) 1. 객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 1) 객체 포인터 변수 이해 - 포인터 변수는 클래스를 기반으로도 작성될 수 있다. ex) Person : 클래스 이름 Person * ptr; // 포인터 변수 선언 ptr = new Person(); // 포인터 변수의 객체 참조 ( 위 문장이 실행되면, 포인터 변수 ptr은 Person 객체를 가리키게 된다. ) [ 여기서 꼭 알아야할 점 ] - Person형 포인터는 Person 객체뿐만 아니라, Pers..
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 5 : 배열의 인덱스 연산자 오버로딩 (배열 클래스, const 함수를 이용한 오버로딩의 활용, 객체의 저장을 위한, 배열 클래스의 정의) [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : 배열의 인덱스 연산자 오버로딩 (배열 클래스, const 함수를 이용한 오버로딩의 활용, 객체의 저장을 위한, 배열 클래스의 정의) - 이번 포스팅에서는, 배열요소에 접근할 때 사용하는, [ ] 연산자를 오버로딩 하고자 한다. 1. 배열 클래스 - C, C++의 기본 배열은 경계검사를 하지 않는다는 단점을 가지고 있다. 따라서 컴파일, 실행 모두 무리없이 진행되는, 엉뚱한 코드가 만들어질 수 있다. int main(){ int arr[3] = {1,2,3}; cout
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : (cout, endl 오버로딩) [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : (cout, endl 오버로딩) 1. cout, endl 오버로딩 ex 1 ) #include namespace mystd { // cout과 endl을, 직접 구현하기 위해서 선언한 이름공간이다. using namespace std; // 이 선언은 namespace mystd 내에서, 지역적으로 이루어졌으니, 이 지역 내에서만 유효한 선언이 된다. class ostream { public: // operator
[문과 코린이의 IT 기록장] C,C++ - 클래스, 생성자( 클래스에 대한 이해, 생성자, 매개변수에 따른 생성자 오버로딩, 이니셜라이저(:) 이용, 소멸자 ) [문과 코린이의 IT 기록장] C,C++ - 클래스, 생성자 ( 클래스에 대한 이해, 생성자, 매개변수에 따른 생성자 오버로딩, 이니셜라이저(:) 이용, 소멸자 ) 1. 클래스에 대한 이해 ex ) cf ) 61행에, month == 12? 12 : month & 12에 대한 이해 ? : - 삼항연산자 12 (참, 거짓을 판단할 변수) ? 12(참 일때 사용할 값) : month & 12(거짓일 때 사용할 값) [ 이 코드에서 클래스 관려해 중요시 봐야할 부분 ] 1. 함수의 정의와 몸통이 분리되어 있다. ex. 클래스 내부에, class Date{ ... void Setdate(int year_, int month_, int Date_) ... }; 클래스 외부에, Void Date :: SetDate..
[문과 코린이의 IT 기록장] C,C++ - 함수의 오버로딩 (함수의 오버로딩에 대한 이해, 함수의 오버로딩 과정) [문과 코린이의 IT 기록장] C,C++ - 함수의 오버로딩 (함수의 오버로딩에 대한 이해, 함수의 오버로딩 과정) 1. 함수의 오버로딩에 대한 이해 - C++에는 C와는 다른 '함수의 오버로딩'이라는 새로운 기능을 갖는다. * C라이브러리에는 pirntf와, scanf가 1개씩만 존재한다. * 그렇지만 C++에서는 같은 이름을 가진 함수가 여러 개 존재해도 된다. 즉, 함수의 이름에 과부하가 걸려도 상관이 없다는 것이다. - 그렇다면 C++에서 같은 이름의 함수를 호출했을 때 구분하는 방법은? : 함수의 인자를 보고 결정하게 된다. ex) - pirnt함수가 3개나 정의되있음에도 불구하고, C와 다르게 오류가 발생하지 않는 것을 볼 수 있다. - 즉, C++에서는 함수의 이름이 같더라도 인자가 다르다면..

반응형