5월, 2015의 게시물 표시

상속 (C++)

이미지
  1. 상속에서 상위 클래스를 (기본 클래스(base class))클래스라고 하고,     상속받는 하위클래스를 (파생 클래스(derived class))클래스라고한다. 2. 상속의 장점 [1]간결한 클래스 작성 기본 클래스의 기능을 물려받아 파생 클래스를 간결히 작성 [2]클래스 간의 계층적 분류 및 관리의 용이성 상속은 클래스들의 구조적 관계 파악 용이 [3]클래스 재사용과 확장을 통한 소프트웨어 생산성 향상 빠른 소프트웨어 생산 필요시,  기존에 작성한 클래스의 재사용(상속)을 이용 상속받아 새로운 기능을 확장 그러므로 앞으로 있을 상속에 대비한 클래스의 객체 지향적 설계 필요 3. 상속의 종류 : public, protected, private 상속에 대해서 간략히 설명(page. 387~388) [1]private 선언된 클래스 내에서만 접근 가능 파생 클래스에서도 기본 클래스의 private 멤버 직접 접근 불가 [2] public 선언된 클래스나 외부 어떤 클래스, 모든 외부 함수에 대해 접근이 허용된다 파생 클래스에서 기본 클래스의 public 멤버 접근이 가능함 [3]protected 선언된 클래스에서 접근 가능 파생 클래스에서만 접근 허용 4. 업캐스팅, 다운캐스팅 [1]업 캐스팅(up-casting) 파생 클래스 포인터가 기본 클래스 포인터에 치환되는 것 (ex) 사람을 동물로 봄 [2]다운 캐스팅(down-casting) 기본 클래스의 포인터가 파생 클래스의 포인터에 치환되는 것 5. 상속관계에서 생성자, 소멸자 호출순서    (1) 그림 8-14코드, 실행결과 #include   <iostream> using   namespace  std; class   A {   public :   A(){ cout <<  "생성자 A"  << endl; }   A( int  x){ cout <<  "매개변수생성자 A"  << endl; } }; class  

함수 중복과 static 멤버

이미지
  1. 함수 중복 조건 중복된 함수들의 매개 변수 타입이 다르거나 개수가 달라야 함 중복된 함수들의 이름이 동일해야함   *리턴 타입은 함수 중복과 무관하다 2. 디폴트 매개변수 선언 및 호출 방법 (예제 6-3 소스코드) #include   <iostream> using   namespace  std; //원형 선언 void  star( int  a=5); void  msg( int  id,  string  text= "" ); // 함수 구현 void  star( int  a){   for ( int  i=0;i<a;i++)   cout <<  '*' ;  cout << endl; } void  msg( int  id,  string  text){  cout << id <<  ' '  << text << endl; } int  main(){   // star() 호출  star();  star(10);   //  msg () 호출  msg(10);  msg(10, "Hello" );   }   3. 디폴트 매개변수의 제약조건 디폴트 매개 변수는 보통 매개 변수 앞에 선언될 수 없음 ( 디폴트 매개 변수는 끝 쪽에 몰려 선언되어야 함) void calc(int a, int b=5, int c, int d=0); void sum(int a=0, int b, int c); <컴파일 불가> void calc(int a, int b=5, int c=0, int d=0); <컴파일 가능> 4. 디폴트 매개변수를 이용하여 함수 간소화 (예제 6-5 소스코드) #include   <iostream> using   namespace  std; void  fillLine( int  n=25,  char  c= '*' ){    // n개의 c 문자를 한 라인에 출력   for ( in