목록Programing/C++ (21)
Steady Blog
*예외처리 디버깅 기법중 하나. void ch12_08() { int a,b; couta>>b; cout
*연산자 오버로딩 1. 왜? 일반 변수처럼 클래스변수도 연산자를 사용하여 연산을 시키고 싶어서. 2. 어떻게? operator() 함수를 사용해서 *operator() 함수 - 특수 함수 - 함수명 = operator - 매개 변수의 갯수가 고정 1) 맴버함수 : 단항(0개), 이항(1개) 2) friend 함수 : 단항(1개), 이항(2개) *friend 함수 - 전역함수. 1. 멤버 함수가 아님 2. 전역 함수 3. 매개변수로 클래스 변수를 가짐 그 클래스 변수(객체)를 통해서 멤버변수에 값을 대조하거나 바꿈. 연산자 오버로딩. 1. 연산자의 오버로딩 ㅊ++은 함수만 오버로딩이 되는 것이 아니다 연산자도 오버로딩이 가능하다 ㅊ++언어의 확장성을 증가시키고 자연스럽게 프로그램을 표현할수 있게 하기 위해..
*상속 part 2 1. 상속 사용하는 법 1) BBB bb; //일반변수 형태 bb.ex(); bb.ex1(); 2) BBB *pb = &bb; //함수의 매개변수로 사용할 때 pb->ex(); pb->ex1(); 3) BBB *pc; // 동적 할당 - 자식 클래스에서 자신을 동적할당. pb = new BBB; pc->ex(); pc->ex1(); delete pc; 4) AAA *pd; // 동적 할당 - 부모 클래스 에서 자식클레스를 동적할당. pd = new BBB; pd->ex(); pd->ex1(); delete pd; => Virtual 함수 사용 // 부모에서 자식을 동적할때와 자식이 자기 자신을 동적할때의 차이점은 virtual함수의 사용의 차이다. 그렇다면 동적할당을 하는 장점은 무엇..
*상속 - private 는 상속 불가능 1. 상속 받는 법 class AAA // 부모 클래스, Base Class { public: void ex() { } }; class BBB : public AAA //자식 클래스, Derived Class { // public = 접근 지정자 , AAA 상속받고 싶은 클래스명 public: void ex1() { } } 2. 사용하는 법 1) BBB bb; //일반변수 형태 bb.ex(); bb.ex1(); 2) BBB *pb = &bb; //함수의 매개변수로 사용할 때 pb->ex(); pb->ex1(); 3) BBB *pc; // 동적 할당 - 자식 클래스 pb = new BBB; pc->ex(); pc->ex1(); delete pc; 4) AAA *pd..
*정적 변수 변수의 위치 1. 지역변수 - 선언된 함수 안에서만 사용 가능 2. 전역변수 -모두 함수안에서 사용 가능 3. static 변수(정적 변수) - 함수 내에 선언된 변수를 말함. //지역변수 특징 - 함수 내에서만 사용이 가능하다. //지역 변수 특징 ㄱ) 변수를 선언하면 메인 함수가 수행되기 이전에 변수가 생성되며, 프로그램이 종료될 때 메모리에서 소멸 된다. // 전역 변수 특징 ㄴ) 초기화 시키지 않아도 자동 초기화 됨 ㄷ) 매개변수 기재 부분에는 static변수를 선언 할수 없다. int a; //전역변수 void ex() { int b; // 지역변수 } 정적 맴버 -클래스 내 static을 붙여 선언한 맴버를 정적맴버라 하는데 정적맴버는 클래스 내에 선언된 맴버지만 클래스의 맴버는 ..
* const C언어 에서의 Const -> 변수를 상수화 -> 값 변경 금지. 1. 일반 변수 일 경우. ex) const double PI = 3.141592; 1. const의 포인터화 int a; const int *pa = &a; // 값 변경 금지 int *const pa = &a; // 주소 변경 금지 const int * const pa = &a; // 주소, 값 변경 금지. * 멤버 함수의 const 化 const char * ex(const int a) const ==>주소 변경 금지 a변수 값 변경 금지 값 변경 금지. { return &a; } const 멤버와 static 멤버 1. 멤버 변수 초기화. 연습 문제 멤버 변수의 상수화 class Student { const int s..
* 변수 초기화 1. int a = 3; 2. int a; a= 3; 3. int a(3); // c++ 초기화 * 복사 생성자 호출 1. 객체로 객체를 초기화 할때 2. 함수의 매개변수로 객체를 전달할 때. 3. 함수의 return value로 객체를 return 할때. 복사 생성자 예제 class AAA { int val; public: AAA(int n) { val = n; } AAA(AAA &a) //복사 생성자. { val = a.val; } void showData() { cout
* 문자열 사용 1. 1차원 배열 1) char a[3] = "AB"; 2) char a[3]; strcpy(a,"AB"); 3) cin>>a; //가능하면 문자열일 경우 안쓰는게 좋다. cin.get(a,3); cin.getline(a,3); // (a,2+1) 2는 문자 1은 NULL문자 2. 2차원 배열 1) char a[2][3] = {"AB","CD"}; 2) char a[2][3]; strcpy(a[0],"AB"); strcpy(a[1],"CD"); 3) cin>>a[0]; cin>>a[1]; cin.get(a[0],3); cin.get(a[1],3); cin.getline(a[0],3); cin.getline(a[1],3); 3. 포인터 변수 1) 참조 1) char *pa = "AB"; 2..