함수(4)
-
[C++] friend 선언(클래스, 함수)
friend 선언 - 클래스• 클래스에 friend 선언을 하면 private 멤버에 접근할 수 있다.애초에 private의 목적이 외부에 공개하지 않는 것이기 때문에 웬만하면 friend를 사용하지 않는 게 좋다.접근하기 불편하다고 friend 선언이나 public 선언을 하면 어디에서든지 접근하여 사용할 수 있어서 유지보수가 힘들어진다.따라서 데이터를 주고받을 일이 많지 않다면 멤버는 private으로 감추고 멤버 함수를 통해서만 접근할 수 있도록 막아주는 방법이 좋다.▷ 예시#include using std::cout;using std::endl;class A; // A 클래스 미리 선언class B {private: int bi; friend class A; // A 클래스는 B 클래스..
2024.04.03 -
[C++] 호출 스택, 반복문 vs. 재귀함수[팩토리얼, 피보나치 수열], 꼬리 재귀
아래 링크 클릭 시 해당 본문으로 이동호출 스택(Call Stack)팩토리얼(Factorial)재귀함수1. 팩토리얼 ➜ 반복문2. 팩토리얼 ➜ 재귀함수피보나치 수열(Fibonacci Sequence)1. 피보나치 수열 ➜ 반복문2. 피보나치 수열 ➜ 재귀함수꼬리 재귀(Tail Recursion)호출 스택(Call Stack)• 현재 호출되어 있는 함수들의 메모리 상황을 보여준다.• 프로그래밍하는 데 있어서 어떤 문제점을 추적할 때 쓰인다.디버깅 중, 호출 스택이 보이지 않을 때 : [디버그] - [창] - [호출 스택]로컬 창과 호출 스택 장점• 로컬 창 : 현재 중단점이 걸려있는 지역(로컬)에 존재하고 있는 변수들을 보여준다.• 로컬과 호출 스택을 잘 활용하면 문제점을 빨리 찾을 수 있다.훨씬 복잡한 ..
2024.03.04 -
[C++] 입출력 (printf(), scanf(), cout, cin)
아래 링크 클릭 시 해당 본문으로 이동C의 입출력 방식printf()scanf()이스케이프 시퀀스형식 지정자C++의 입출력 방식coutcinC 입출력 방식 vs. C++ 입출력 방식C의 입출력 방식헤더 파일// C 방식#include // stdio.h => global namespace// #include : 내가 원하는 다른 기능을 포함시킨다는 의미, 전처리기이다.// stdio : standard input output (표준 입출력)// .h : 헤더 파일(header file)을 의미하는 확장자// C++ 방식#include // cstdio => std라는 namespace`printf()`와 `scanf()`를 사용하려면 `#include `라는 표준 입출력 헤더 파일이 필요하다.pr..
2024.03.03 -
[C++] 함수[main()], return, void
아래 링크 클릭 시 해당 본문으로 이동함수main()returnvoid함수 동작 방식함수 선언 또는 정의 없이 함수를 호출하면 발생하는 문제함수• 각각의 기능들을 함수라고 한다.• 함수 표현하는 법 : `함수명()`• 기능의 모듈화 : 밑에서부터 천천히 쌓아 올라가는 것작은 별도의 기능부터 큰 기능까지 만들 때, 모듈화 하는 습관을 가져야 한다.• 함수는 여러 번 호출할 수 있다.함수가 여러 번 호출될 때마다 함수가 사용할 만큼의 메모리 영역을 잡고 해제하며, 결과를 반환하고 함수가 종료되는 과정이 반복된다.`main()`• 프로그램을 실행시킨다. = 프로그램의 가장 첫 번째 함수인 `main()`를 호출한다.`return`• 해당 함수의 종료를 의미하며, 함수를 호출한 곳으로 돌아가서 결괏값을 반환한다..
2024.03.03