일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- suffix return type
- pointer to member data
- std::cout
- std::endl
- placement new
- operator overloading
- c++ multi chatting room
- discord bot
- increment operator
- member function pointer
- vector capacity
- dynamic_cast
- vector size
- virtual function
- 더 지니어스 양면포커
- std::vector
- base from member
- virtual destructor
- c++ basic practice
- C++
- this call
- new&delete
- virtual function table
- virtual inheritance
- return by reference
- std::ostream
- constructor
- diamond inheritance
- delete function
- conversion constructor
- Today
- Total
목록C++/Basic (37)
I'm FanJae.
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. Suffix Return type(후위 반환 타입)int add1(int a, int b) // Type A. 일반적인 함수{ return a+b;}auto add2(int a, int b) -> int // Type B. 반환 값인 int가 후위에 표기되어있다.{ return a+b;}- Type A가 지금까지 사용되었던, 일반적인 함수의 형태이다.- C++11에서 부터 새롭게 등장한 함수의 표기법으로, 함수의 반환 타입을 함수의 () 뒤쪽에 적는 표기법이다.※ 즉, 기존 함수의 표기법은 반환 타입이 입력보다 앞쪽에 표기되었던 반면, Suffix Return type은 반환 타입이 입력 뒤쪽에 표기된다. ..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. 함수 템플릿(Function template) 1-1. 함수 오버로딩의 단점함수 오버로딩(Function overloading) - 관련 내용 링크- 인자의 형태(타입, 개수)가 다르면 동일 이름의 함수를 여러개 만들 수 있다.Ex) square(int), square(dobule) ※ square 함수를 만들 때, 인자 타입과 반환 타입만 다르고 구현이 동일(유사)한 함수를 여러개 만들어야 한다. 1-2. 함수 템플릿(Function template)의 정의- C++ 언어의 해결책은 구현이 동일(유사)한 함수가 여러 개 필요하면 함수를 만들지 않는다.- 대신, 함수를 생성하는 틀(템플릿)을 만들자는 것이다.// te..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. - Function 이라는 것은 원래 C 언어에도 존재하던 개념이다.- C 언어에는 없는 C++ 함수만의 특징들이 존재한다. 1. Default parameter#include void foo(int a, int b = 0, int c = 0){ std::cout - C 언어에서는 함수 인자에 값을 넣는 표기 사용이 불가능하다.- 반면, C++에서는 함수 인자에 Default 값을 넣는 것이 가능하다. ※ Default parameter라는 것은 함수 호출시 인자를 전달하지 않으면, 미리 지정된 인자 값을 사용하게 한다는 것이다. 1-1. Default parameter 사용시 주의 사항① 함수의 마지막 인자부터 차..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. C 언어와 다르게 C++ 언어에서는 여러 가지 데이터 타입과 변수가 추가되었다. 1) auto, decltype 1-1) autoint main(){ int x[5] = {1,2,3,4,5}; auto n = x[0]; // n은 int type이 된다. auto a = x; // 배열의 이름은 해당 배열의 첫번째 원소의 주소로 암시적 형변환이 된다. 따라서 a는 (int *) 가 된다. } auto ( C++ 11 )- 변수 선언시, 우변의 표현식을 조사하여 컴파일러가 타입을 결정한다.- 컴파일 할 때 타입을 결정하여, 실행 시 오버헤드는 없다.- 위 예제의 경우는 x[0]이 int ..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. C vs C++ 표준 출력의 차이#include #include int main(){ int n = 10; double d = 3.4; printf("%d, %f\n", n, d); std::cout > n; } ① C는 printf 함수를 사용한 반면, C++은 std::cout이라는 객체를 사용한다. (객체가 무엇인지는 추후 다룰 예정) ② C는 %d, %f와 같은 포맷 지시어가 필요했으나, C++은 별도의 포맷 지시어를 사용하지 않는다. ③ 개행을 할때 '\n' 을 사용하는데, C++은 '\n' 또는 std::endl를 사용한다. ④ 입력을 받을 때는 C언어는 scanf 함수를..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. namespace 란?C 언어에서는 동일한 이름의 함수를 2개 이상 만들 수 없다. 이와 달리 C++ 에서는 "namespace"라는 문법을 사용하면, 관련된 코드 (함수, 구조체, 전역 변수 등)을 묶어서 관리 할 수 있다. 서로 다른 이름 공간에서는 동일한 이름을 사용할 수 있다.#include namespace Audio{ void init() { printf("init Audio module\n"); } void reset() { printf("reset Audio module\n"); }}namespace Video{ void init() { printf("init Video module\n"); }}int..
Visual Studio 2022 기준으로 표준은 C++ 14이다.따라서, C++ 17, 20에 새롭게 정의된 Class를 사용시 에러가 발생한다. 1. 해결법 1) 프로젝트->프로젝트 속성 탭을 클릭한다. 2) 구성 속성 -> C/C++ -> 언어 -> C++ 언어 표준의 옵션을 본인이 원하는 버전으로 변경한다. 변경 후 적용 버튼을 누른 뒤 확인을 누르면, 정상적으로 변경이 되었음을 확인할 수 있다. 적용 이후, 오류가 나지 않고, 정상적으로 인식한 것을 확인할 수 있다.