-
윤성우 열혈 C++ 프로그래밍 1장) C언어 기반의 C++PROGRAMMING/C++ 2023. 12. 13. 08:14
2년만에 다시 프로그래밍 언어를 복기하려고 예전에 공부했던 책 윤성우님의 책 "열혈 C+ 프로그래밍"을 꺼내들었다.
책의 내용을 그대로 적지 않고 나의 언어로 바꿔서 기억하고 싶은 부분들 위주로 정리해보고자 한다.
(혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당)
https://product.kyobobook.co.kr/detail/S000001589147
ㅋㅋㅋㅋㅋ..
근데 visual studio 처음 시작하는 방법부터 까먹어버렸다.
(아.. 나 이정돈 아니였는데ㅠㅠ)
https://cordingdoah.tistory.com/3
똑똑한 선생님들의 도움을 받아 Visual Studio 시작하기 성공!
Chapter 1) C언어 기반의 C++
- iostream
- 함수 오버로딩
- 매개변수의 디폴트값
- 인라인 함수
- 이름공간 namespace
iostream
#include <iostream> int main(void){ int val_1, val_2; std::cout << "두 개 숫자" << std::endl; std::cin >> val_1 >> val_2; std::cout << "두 숫자의 합 : " << val_1 + val_2; return 0; }
함수 오버로딩
함수 이름이 같아도 전달되는 인자의 숫자나 자료형이 다르면 다른 함수다.(반환형은 상관 없음!!)
참조로 전달
https://boycoding.tistory.com/217
함수에서 인수를 참조로 전달하면 변수에 대한 참조는 변수 자체와 똑같이 취급되므로 참조에 대한 모든 변경 사항이 인수에도 적용된다.
#include <iostream> void add_1(int& x) { x = x + 1; } int main() { int x = 5; add_1(x); std::cout << "x : " << x << std::endl; /// 6이 출력됨 return 0; }
매개변수의 디폴트 값
매개변수에 디폴트 값이 설정되어 있으면 1. 왼쪽부터 채워서 들어가고 2. 부족한 부분은 디폴트 값으로 채워진다.
3. 함수의 원형을 별도로 선언하는 경우 매개변수의 디폴트 값은 함수의 원형 선언에만 위치할 수 있다.
(선언과 정의는 다르다!)
인라인(inline) 함수
매크로함수 : 시간을 단축하고, 효율이 좋지만 정의하기가 복잡 ➡️ 인라인함수 : 정의하기 쉬워짐
처리되는 곳 자료형 의존 여부 매크로 함수 전처리기에서 처리 X 인라인 함수 컴파일러에서 처리
(임의적인 판단으로 무시하고나 자동으로 인라인 처리도 함)O
(템플릿 사용으로 극복 가능)#include <iostream> #define add_1(x) x+1 ///매크로 함수 template <typename T> inline T square(T x) { /// 인라인 함수 return x * x; } int main() { int x = 5; add_1(x); std::cout << " add_1: " << add_1(x) << " square(x) : " << square(x) << std::endl; return 0; }
이름공간(Namespace)
:: 범위지정 연산자(이름공간을 지정할 때 사용하는 연산자)
using 이름공간::함수(변수) : 이름공간을 명시하지 않고도 함수(변수)를 부를 수 있음
using namespace std : 이름공간 std에 선언된 모든 것에 대해 이름공간 지정을 생략할 수 있음
지역변수의 이름이 전역변수의 이름과 같을 경우, 전역변수는 지역변수에 의해 가려딘다.
이 경우 전역변수는 ::전역변수로 호출하면 된다.
단축키
주석처리 ctrl + k + c
주석해제 ctrl + k + u
'PROGRAMMING > C++' 카테고리의 다른 글
SwapPointer(포인터가 가리키는 대상이 서로 바뀌도록 하는 함수) 윤성우의 열혈 C++ 문제 2-1-3 (0) 2023.12.26 윤성우 열혈 C++ 프로그래밍 3장) 클래스의 기본(struct와 class, private와 public, 파일분할, 객체지향 프로그래밍) (1) 2023.12.22 윤성우 열혈 C++ 프로그래밍 2장) C언어 기반의 C++ 2(bool형 자료형, 참조자, const, new&delete) (2) 2023.12.20 윤성우 열혈 C ppt 정리본(chapter 17 ~ chapter 30) (2) 2023.12.19 윤성우 열혈 C ppt 정리본(chapter 1 ~ chapter 16) (2) 2023.12.18