목록Tutorials/C++ : Beginner (46)
KoreanFoodie's Study
객체란? 객체는 인스턴스 변수(instance variable)과 인스턴스 메소드(instance method)로 이루어져 있다. 클래스 클래스는 객체를 찍어내는 '설계도'이다. 클래스 내부의 변수와 함수를 각각 멤버 변수(member variable)과 멤버 함수(member function)이라고 부른다. 멤버 변수와 함수는 접근 지정자를 설정할 수 있다. public : 외부에서 접근 가능 protected : 상속된 클래스만 접근 가능 private : 외부에서 접근 불가능 사실 C++에서 클래스와 구조체의 유일한 차이는 바로 접근 지정자에 있다!
new와 delete c에 malloc과 calloc이 있다면, C++에는 new와 delete가 있다. int* p = new int; *p = 10; delete p; 만약 지역변수를 delete로 해제하려 한다면 Heap이 아닌 공간을 해제하려 한다는 경고 메시지가 나타난다. 컴파일러는 변수를 가까운 곳에서 찾는다. int a = 4; { std::cout
참조자 (레퍼런스) 레퍼런스(reference)는 & 기호를 이용해서 표기한다. #include int main() { int a = 3; int& another_a = a; } 참조자는 별명, 즉 또다른 이름이다. 레퍼런스는 반드시 정의 시 누구의 별명이 될 것인지 지정해야 한다. 또한, 레퍼런스가 한 번 별명이 되면 절대로 다른 이의 별명이 될 수 없다! int a = 10; int& another_a = a; int b = 3; another_a = b; 제일 마지막 줄은, 실제로 "a=b"와 같은 의미를 지닌다. 또한, 레퍼런스는 메모리 공간 속에 존재하지 않을 수도 있다. 이는 레퍼런스를 위해 새로운 공간을 할당할 필요가 없을 수도 있다는 것이다. 참조자의 참조자? int a = 1; int& ..
이름 공간 (namespace) namespace는 정의된 객체가 어디 소속인지를 지정해준다. #include "header1.h" #include "header2.h" int main() { header1::foo(); header2::foo(); } 위의 예시처럼, header1과 header2에 같은 이름의 함수 foo( )가 정의되어 있더라도 namespace를 사용하면 구분해서 사용할 수 있다. 또한, "using namespace std;"와 같은 방식은 추천하지 않는다. std에는 수많은 함수들이 포함되어 있기 때문에, 충돌이 일어날 수 있기 때문이다. 이름 없는 이름 공간 이름 없는 이름 공간을 설정할 경우, 정의된 것들은 해당 파일 안에서만 접근할 수 있게 된다. 이 경우 마치 stati..
깃헙을 통해 모던 C++를 중심으로, 모던 C++의 기초 내용 중, 기억하면 좋을 부분만 간추려 Github에 정리중입니다. 예제 소스 코드는 모두의 코드의 씹어먹는 C++ 강좌를 참고했습니다. 정말 좋은 소스니 꼭 한 번 보시라고 권하고 싶습니다. CPP Review CPP Review following lectures from here, Effective C++ and Effective Modern C++. Also cover other references & codes 1. Namespace 2. References Reference is a nickname. Therefore it cannot be used alone, it needs original name to exist! Can't assi..
double square_root(double x) noexcept {...} '모던 C++ 입문'을 읽으며 내용을 정리하고 중요한 부분을 기록하는 글입니다. 모던 C++ 입문 1 - C++ 기초 (초기화, 리터럴, 예외, 포인터) 변수 변수는 가능한 늦게 선언하라. 일반적으로 초기화를 하기 전에는 선언하지 않는 것이 좋다. 리터럴 값 뒤에 문자를 붙여 리터럴임을 표시할 수 있다. 리터럴 타입 2 int 2u unsigned 2l long 2ul unsigned long 2.0 double 2.0f float 2.0l long double 유용함 : 표준 라이브러리는 복소수를 위한 타입을 제공한다. std::complex z(1.3, 2.4), z2; 불행하게도 float이외의 타입과 연산이 불가능하다...