초학 C++-------------------------클래스의 구조 함수, 분석 함수

4535 단어 구조 함수
1. 구조 함수
특징:
1) 클래스 이름과 이름이 같습니다.
2) 유형 설명을 반환하는 함수가 없습니다.
3) 주로 완성된 대상의 초기화이다.
4) 새로운 대상이 만들어질 때(a. 대상의 설명문에서 b. new 함수로 동적 대상을 새로 만들 때) 시스템은 상응하는 구조 함수를 자동으로 호출한다.
5) 여러 개의 구조 함수(중재)가 있을 수 있다. 여러 개의 구조 함수의 함수 이름은 같지만 그 형태는 데이터 유형이나 수량에 차이가 있기 때문에 시스템은 매개 변수의 성질과 개수에 따라 적합한 구조 함수를 선택한다.
6) 구조 함수는 반드시 공유 함수이다.
7) 구조 함수의 집행은 시스템이 대상을 만들 때 자동으로 실행된다.
구조 함수를 정의하는 일반적인 형식은 다음과 같습니다.
클래스 이름
{
  public:
클래스 이름(참조 목록);//구조 함수 원형
기타 구성원
};
클래스 이름: 클래스 이름 (참조표)
{
함수체
}
기본 구조 함수:
클래스 정의에 명시적인 구조 함수가 없는 경우 시스템은 자동으로 기본 구조 함수를 제공합니다.
<클래스 이름> (void)
      {
      }
클래스가 구조 함수를 정의하면 시스템은 기본적인 구조 함수를 제공하지 않습니다. 이때 파라미터가 없는 구조 함수를 원한다면 사용자가 따로 정의해야 합니다.
구조 함수의 매개 변수가 기본값을 가지고 있을 때, 부족한 매개 변수를 가진 구조 함수라고 부른다.기본값을 사용할 때는 다음 사항에 유의해야 합니다.
1) 클래스 정의의 인터페이스 부분에만 나타날 수 있고 클래스 정의의 실현 부분에는 나타날 수 없다.
2) 기본값이 있는 모든 매개변수는 매개변수 테이블의 맨 오른쪽에 있어야 합니다.
3) 부족한 매개변수가 있는 구조 함수를 사용할 때는 이의성을 방지해야 한다.
 1 class sample    
 2 
 3 { private:
 4 
 5   int x,y,z;
 6 
 7   public:
 8 
 9   sample();// sample 
10 
11   sample(int i, int j, int k=10);  // , , ( 19 ), k ,i,j , k                                                  i,j 
12 
13 };
14 
15 sample:: sample()     
16 
17 {   x=1; y=2;z=5;  }
18 
19 sample:: sample(int i, int j, int k)  
20 
21 {   x=i;y=j;z=k; }
22 
23 void main()
24 
25 {  
26 
27      sample x(20,30,80);
28 
29      sample y;    // 
30 
31 }
 
2. 분석 함수
특징:
1) 함수 이름은 ~클래스입니다.
2) 함수 반환 유형 설명이 없고 매개 변수가 없으며 임의로 호출할 수 없고 재부팅이 없습니다.
3) 대상자 철회 전 수습을 완료한다.
4) 대상이 설명 영역을 종료하거나 delete를 사용하여 동적 대상을 방출할 때 시스템은 자동으로 분석 함수를 호출한다.사용자가 분석 함수를 정의하지 않으면 기본 분석 함수를 생성하고 호출합니다.
5) 하나의 클래스는 하나의 분석 함수만 있고 생략할 수도 있습니다.
6) 대상이 분석되는 순서는 세워진 순서와 정반대이다.
7) 구조 함수에서 new 연산자를 클래스로 하는 데이터 구성원이 메모리를 동적 분배할 때 분석 함수에서 이 메모리를 delete 연산자로 방출해야 한다.

좋은 웹페이지 즐겨찾기