새소식

Programming Language/C++

(int-i c++스터디) 함수/람다식/class

  • -

1. 함수

선언과 정의는 왜 분리하는가

함수선언(프로토타입) -> main함수에서 호출 -> 함수 정의 파트


: 코드를 숨기기 위해! (정보은닉과 관련) 
-> 구현부분은, 사람은 못읽는데 컴퓨터만 쓸 수 있도록.

사실 반한 값과 매개변수는 없을 수 있다

void func2(){
   cout << "부작용만 존재하는 함수 " << endl;
} // 단지 외부에 문자열을 출력만 함
->이런 식으로 함수의 반환값과 관계 없이, 함수 외부에 영향을 미치는 것을 부작용(side effect)라고 부른다.


순수함수 : 부작용이 없으면서, 언제 해당 함수를 호출해도 항상 같은 값만 반환

2. 람다식


람다식? 익명함수?

람다식: 함수를 더 단순하게 표현하여, 함수의 계산을 좀 더 용이하게 표기하는 표기법
-람다식을 쓰면, 함수 안에 함수를 정의하는게 가능해진다.
-람다식을 쓰면, 매개변수의 자료형으로 auto를 쓸 수 있다.

IIFE (정의와 동시에 실행되는 함수)
-람다식은, 함수를 정의하자마자 바로 실행시킬 수 있다.
 -> 이 때, 구현파트에 함수의 이름이 없기 때문에, 람다함수를 익명함수라고도 불리는 것.

 

3. 클래스


Class
-C++에서의 클래스: 같은, 비슷한 속성을 가진 개념들을 어느 하나로 정의 내린 것.
멤버함수(=매서드): 클래스 내에 속하는 함수로, 해당 클래스와 관련된 기능이 들어가야 한다.
-멤버변수: 클래스 내에 속하는 변수. 해당 클래스의 개념을 구성하는 여러가지 속성들이 해당

-생성자 : 클래스의 이름과 똑같은 이름을 가진 함수.
 -> 조금 특수한 함수.

*클래스는 틀과 같다. 따라서, 이런 틀로 객체들을 여러개 찍어낼 수 있다.
이 객체를 찍어내면서, 각각의 객체에 '고유한 값'을 넣어 주는 것 = 생성자의 역할

 
객체를 초기화한다 = 멤버변수 선언 시, 초기값을 넣어주는 것.

this -> 이름 = 이름; 이런식으로 this포인터 사용

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.