우 육시 엉 - 자연 C ++ 언어 연구 노트를 탄생 : C ++ 기능을

문으로 작업을 수행하는 함수의 집합입니다. 각 C ++ 프로그램은 적어도 하나 개의 기능, 즉, 주 기능의 main () 모두 간단한 프로그램은 다른 부가 기능을 정의 할 수있다.
코드는 다른 기능으로 나눌 수 있습니다. 그것이를 결정하는 것은 여러분의 몫입니다 만, 논리적으로 보통에 따라 특정 작업을 수행하는 각각의 기능을 수행 분할 된 별도의 기능에 코드를 분할하는 방법.
함수 선언은 컴파일러 함수 이름, 반환 형식과 매개 변수를 알려줍니다. 함수 정의 기능의 실제 본체를 제공한다.
C ++ 표준 라이브러리를 호출 할 수있는 프로그램의 기능에 내장 된 많은 수의를 제공합니다. 예를 들어, 함수 strcat와 ()는 두 개의 스트링을 연결하는 데 사용되는 함수는 다른 위치로 상기 메모리를 복사 () memecpy하기.
등등 방법, 절차 또는 서브 루틴 등과 같은 많은 함수가 호출 될 수 있습니다.
C ++ 다음 함수의 일반적인 형태는 다음과 같이 정의
return_type의 FUNCTION_NAME (파라미터리스트)
{
   함수 본문
}
에서는 C ++ , 기능 제의 기능 및 신체 조성의 함수. 아래에 나열된 모든 구성 요소의 기능은 다음과 같습니다
반환 유형 : 함수가 값을 반환 할 수 있습니다. return_type 함수에 의해 리턴 된 값의 데이터 형식이다. 일부 기능이 경우, 키워드 return_type의에서, 반환 값없이 필요한 작업을 수행 무효 .
함수 이름이 함수의 실제 이름입니다. 함수 이름 및 파라미터리스트를 함께 함수 서명을 구성한다.
매개 변수 : 매개 변수가 자리 표시 자와 같다. 함수가 호출 될 때 매개 변수에 값을 전달,이 값은 실제 매개 변수라고합니다. 함수 매개 변수의 매개 변수 목록은 종류, 순서, 수량 등이 있습니다. 매개 변수는 선택 사항입니다, 즉, 함수는 매개 변수를 포함하지 않을 수 있습니다.
주요 기능 : 함수의 본체는 사명 정의 함수의 집합이 포함되어 있습니다.
다음은 소스 코드에서 최대 () 함수이다. 이 기능은 두 숫자의 큰 돌아 계산되는 두 개의 매개 변수 NUM1 및 num2를 소요 :
 // 수의 함수가 반환 두 숫자의 큰를
 
INT 최대 ( INT의 NUM1, INT NUM2)
{
   // 로컬 변수 선언 
   INT 결과;
 
   경우 (NUM1> NUM2)
      결과 = NUM1 단계;
   다른 
      결과 = NUM2;
 
   반환 결과를;
}
함수 선언 내용은 다음과 같습니다
return_type의 FUNCTION_NAME (파라미터리스트);
앞서 정의 된 최대 함수 ()의 경우, 다음 내용의 함수이다 :
INT 맥스 ( INT의 NUM1, INT NUM2);
함수 선언에서 매개 변수의 이름은 다음과 같은 유효한 문하므로, 매개 변수의 유형이 필요하다 중요하지 않다 :
INT 맥스 ( INT , INT );
함수가 소스 파일에 정의하고, 다른 파일에서 함수를 호출 할 때, 함수 선언이 필요하다. 이 경우 파일의 맨 위에있는 함수 선언 함수를 호출한다.
는 C ++ 생성 기능, 함수는 무엇을 정의하며, 다음이 함수를 호출하여 정의 된 작업을 완료 할 수 있습니다.
프로그램이 함수를 호출 할 때, 프로그램 제어는 호출 된 함수로 전송됩니다. 함수가 함수 반환 문이 실행될 때 호출, 또는 단부 브래킷 기능에 도달되는 작업을 정의 할 때, 프로그램은 메인 프로그램에 제어를 반환합니다.
함수는 함수가 값을 반환하는 경우, 반환 값이 저장 될 수 있으며, 필요한 매개 변수를 전달이라고합니다. 예를 들면 :
사용법 #include <iostream>
 사용  스페이스 성병;
 
// 함수 선언 
INT의 최대 ( INT의 NUM1, INT NUM2);
 
int 형 ) (주
{
   // 로컬 변수 선언 
   INT의 A = 100 ;
    INT의 B = 200이다 ;
    INT RET;
 
   // 최대를 얻는 함수를 호출 
   RET = 최대 (A, B)를;
 
   COUT은 << " 최대 값은 : " << RET << ENDL;
 
   반환  0 ;
}
 
// 함수는 두 숫자 중 큰 수를 반환 
int로 최대 ( INT의 NUM1, INT NUM2)
{
   // 로컬 변수 선언 
   INT 결과;
 
   경우 (NUM1> NUM2)
      결과 = NUM1 단계;
   다른 
      결과 = NUM2;
 
   반환 결과를;
}
최대 () 함수와를 넣어 main () 함수는 소스 코드를 컴파일합니다. 당신이 실행하면 최종 실행 파일은 다음과 같은 결과를 생성합니다 :
최대 값 입니다 : (200)
당신이 함수 매개 변수를 사용하려면 매개 변수 값을 허용하도록 변수를 선언해야합니다. 이러한 변수는 함수의 형식 매개 변수라고합니다.
기능을 입력 할 때 기능의 파라미터 내의 로컬 변수의 다른 형태가 만들어 마찬가지로이 함수가 종료 될 때 파괴된다.
당신이 함수를 호출 할 때 함수에 매개 변수를 전달하는 방법은 세 가지가 있습니다 :
통화별로있어서 복사 파라미터의 실제 값 함수의 공식 매개 변수. 이 경우, 파라미터 변경은 실제 파라미터의 기능에 영향을 미치지 않는다.
이 방법은 형식 매개 변수에 복사 포인터 주소 매개 변수를 호출합니다. 함수 내에서 실제 매개 변수에 대한 주소는 전화를 액세스하는 데 사용할 수 있습니다. 이 방법은 매개 변수의 수정은 실제 매개 변수에 영향을 미칩니다.
이 방법은 형식 매개 변수 매개 변수에 대한 참조 복사 참조라고합니다. 함수 내부 실제 파라미터에 대한 기준은 호출을 액세스하는 데 사용한다. 이 방법은 매개 변수의 수정은 실제 매개 변수에 영향을 미칩니다.
기본적으로 C는 + + 콜에 의해 매개 변수를 전달하기를 사용하여. 일반적으로,이 방법은 함수의 코드는 함수를 호출하는데 사용되는 매개 변수를 변경할 수 없다. 예는 이전 통화 맥스 () 함수와이를 사용하는 방법을 언급했다.
매개 변수의 기본값
당신이 함수를 정의 할 때, 당신은 매개 변수 목록 뒤에 각 매개 변수에 대한 기본 값을 지정할 수 있습니다. 함수를 호출, 실제 매개 변수의 값을 비워두면, 디폴트 값입니다.
이는 매개 변수로 함수 정의를 할당하는 대입 연산자를 사용하여 수행됩니다. 당신이 함수를 호출 할 때 매개 변수의 값이 전달되지 않은 경우, 값이 지정된 경우 다음 디폴트 값은 디폴트 값은 전달 된 값을 사용하여, 무시됩니다. 다음 예를 고려하십시오

int 형 ) (주
{
   // 로컬 변수 선언 
   INT의 A = 100 ;
    INT B = 200이고 ,
    INT 결과;
 
   // 값 추가 함수 호출 
   결과를 = SUM (A, B);
   COUT은 << " 전체 값은 : " << 결과 << ENDL;
 
   // 다시 함수를 호출 
   결과 = SUM (A);
   COUT은 << " 전체 값은 : " << 결과 << ENDL;
 
   반환  0 ;
}
위의 코드를 컴파일하고 실행되면 다음과 같은 결과를
총 값 입니다 : 300 
총 값 입니다 : (120)
람다 함수와 표현
C ++ 11 익명 함수 (또한 람다 식이라고도 함)이라고 람다 함수에 대한 지원을 제공한다.
람다 표현은 객체의 함수로서 볼 수있다. 이들은 변수에 할당하고, 그 기능도 평가 될 수있다 같은 매개 변수로 전달 될 수 람다로 표현은 물체처럼 사용될 수있다.
성격과 기능 선언에 람다 표현식은 매우 유사합니다. 람다 표현식을 특정 양식은 다음과 같습니다 :
[캡쳐 (파라미터) ->  - 유형 체 {}
[( INT의 X, INT Y) {  X < Y; }
더 리턴 값으로 표시 할 수없는 경우 :
[캡쳐 (매개 변수) {본체}
[{ ++ global_x; }
다음과 같이 더 복잡한 예에서, 반환 형식을 명시 적으로 지정할 수 있습니다 :
[( INT의 X, INT Y) -> INT { INT의 Z = X + Y; 리턴 Z + X; }
C ++ 변수의 차이 값에 의해 참조 통과했다. ] 이전 [지정할 수 있습니다 :
[]       // 어떠한 변수가 정의되지 않는다. 정의되지 않은 변수의 사용은 오류로 이어질 것입니다. 
[X, Y는 b] // X에 값 (기본)에 의해 전달 된, 예를 참고로 통과시켰다. 
[b]      @ 내재적 참조에 의해 참조 될되어 사용되는 외부 변수. 
[=]      @ 사용될 외부 변수 값에 의해 내재적으로 참조 할 수있다. 
[b, X는]   // X 값을 명시 적으로 참조된다. 나머지 변수들은 참고로 인용된다. 
[=, Z] // Z 명시 적으로 참조에 의해 참조 될 수있다. 나머지 변수 값을 참조 할 수있다. 
또 다른 점은주의한다. 에서 [=] 또는 - [] 폼, 람다 식 직접 사용  포인터. 그러나, []를 사용하려면,의 형태로 명시 적으로 통과해야 포인터를 :

[  () {  -> someFunc (); } ();

 

추천

출처www.cnblogs.com/tszr/p/12148358.html