본문 바로가기
반응형

01.Bit 단기93

44_STL find 함수 #include using namespace std; int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; // int *p = find(arr, arr + 10, 10); int *p = find(arr, arr + 10, 10); if (p == p + 10) cout 2018. 5. 9.
43_find 템플릿 함수 구현 #include using namespace std; /* int * find(int *begin, int *end, int value) { while (begin != end && *begin != value) begin++; return begin; //1. 찾았을 때 ; begin != end //2. 못찾았을 때 ; begin == end } */ //함수 템플릿 예 template T1 myfind(T1 begin, T1 end, T2 value) { while (begin != end && *begin != value) begin++; return begin; } int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //구간 : 1인자 ~ 2인자 // .. 2018. 5. 9.
42_전문화템플릿 #include using namespace std; //템플릿 전문화(특수화) /* 선작업 : 템플릿함수를 구성하였다. 문제발생 : 특정타입은 알고리즘이 다르다. 해결법 : 특정타입만 전문적으로 호출되는 템플릿전문화 함수를 구성한다. */ template bool cmp(T num1, T num2) { return num1 == num2; } //전문화템플릿 template //template bool cmp(char* num1, char* num2) { return (strcmp(num1, num2) == 0); } int main() { if (cmp(10, 10) == true) cout 2018. 5. 8.
41_하나이상의 typename T #include using namespace std; // 템플릿 구성시 하나 이상의 typename을 구성할 수 있다. template T1 add(T num1, T1 num2) { return num1 + num2; } int main() { int num = add(10, 10.1); //T->int , T1->double int num1 = add(20, 20); //T->int, T1->int return 0; } 2018. 5. 8.
40_암시적명시적 사용 #include using namespace std; template T add(T num1, T num2) { return num1 + num2; } int main() { //1.사용 : 암시적 // T 키워드를 인자를 통해 암시적으로 int 로 처리 cout 2018. 5. 8.
39_함수템플릿 #include using namespace std; /* 함수 템플릿 == 일반화 문법 - 함수를 만드는 틀 - 내가 직접 함수를 만드는 것이 아니라 틀을 제공하고 컴파일러에게 생성을 요청하는 것 */ /* //오버로딩 구조를 직접 코딩한 예 int max(int n1, int n2) { return n1 > n2 ? n1 : n2; } double max(double n1, double n2) { return n1 > n2 ? n1 : n2; } */ //오버로딩 구조를 컴파일러가 생성한 예 //템플릿 함수 //template : 템플릿 함수를 만드는 키워드 //typename T : T 는 사용자에 의해 매칭되는 타입 키워드 template T max(T n1, T n2) { return n1 > .. 2018. 5. 8.
38_상속구조의 관점(계좌관리 실습) /* 상속 : 만약 하나의 부모에 다수의 자식이 있는 경우 1) 부모는 반드시 자식들의 공통 맴버변수,맴버함수 를 갖는다. 2) 자식은 1) 자신만의 기능을 확장 (맴버변수,맴버함수)추가 2) 부모로부터 받은 기능을 개선/수정 맴버함수의 오버라이딩 일반계좌 : 이름,잔액,계좌번호 입금기능, 출금기능, 정보출력기능 기부계좌 : 이름,잔액,계좌번호,기부금합 입금기능, 출금기능, 정보출력기능 *1000*0.9 입금, 1000*0.1 기부 신용계좌 : 이름,잔액,계좌번호 입금기능, 출금기능, 정보출력기능 *1000*1.1 입금 부모 : 이름,잔액,계좌번호 입금기능, 출금기능, 정보출력기능(이,잔,계) 자식1(일반계좌) 자식2(기부계좌) 기부금합 정보출력기능 재정의 입금기능 재정의 자식3(신용계좌) 입금기능 재정.. 2018. 5. 3.
37_다중상속및 모호성2(virtual) #include using namespace std; /* 다중상속 : 부모가 2이상... - 모호성 발생예 - 가상(virtual)상속으로 모호성 해결 중복되는 개체 생성을 하나만 생성하도록 처리 */ class A { public: void afun() { cout C -> D //~D -> ~C -> ~B -> ~A d.afun(); return 0; } 2018. 5. 3.
36_다중상속및 모호성1 #include using namespace std; /* 다중상속 : 부모가 2이상... - 모호성 발생예 */ class A { public: void afun() { cout A -> C -> D //~D -> ~C -> ~A -> ~B -> ~A d.C::afun(); //모호성을 없애기 위해 명시적호출 return 0; } 2018. 5. 3.
반응형