목록C++ (27)
삶의 공유
오늘은 C++11 에서 부터 추가된 Null Ptr(널 포인터) 에 대해 살펴 보겠다. nullptr 먼저 아래의 코드를 보자 위의 2줄은 ok이지만, 마지막 2줄에서는 error가 발생 한다. 왜 일까? #include int main(int argc, const char * argv[]) { // insert code here... int n1 = 0; // 1. ok int* p1 = 0; // 2. ok int* p2 = 10; // 3. error int* p3 = n1; // 4. error } 먼저 int n1 = 0; 구문에서 이 '0'에 대해서 생각 해보자. 이 '0'은 바로 정수(int)형 literal 이다. 즉 포인터 변수 초기화에 사용이 될 수 있다. (포인터로 암시적 형 변환) ..
전 포스팅에 이어서 Reference의 활용으로 Const, Return, Rvalue에 대해서 알아보자. Const Reference 아래와 같은 예시가 있다고 생각해보자, #include struct Rect { int left; int top; int right; int bottom; }; void foo(Rect r) { } int main(int argc, const char * argv[]) { // insert code here... Rect rc = {1,1,5,5}; foo(rc); } 여기서 foo 함수에 Rect 타입 변수 rc를 전달하는데 "foo 함수 안에서는 rc의 상태는 변경되면 안된다." 라는 규칙이 적용이 되면 우리는 Call by value로 전달하면 된다. Call by..
오늘은 표준 입출력에 이어서 Reference에 대해 공부해보자. 레퍼런스 (Reference, 참조) 란? 이미 존재하는 변수(메모리)에 대한 추가적인 별칭(alias)를 부여 하는 문법 예시는 다음과 같다. #include int main(int argc, const char * argv[]) { // insert code here... int n = 10; int*p = &n; int&r = n; r = 20; std::cout
C 언어와 C++ 언어의 표준 입출력의 차이점에 대해서 알아보자 먼저 아래 구문을 통해 C언어 스타일의 입출력 표기 하는 방법과 C++ 언어의 입출력 표기하는 방법을 비교해보려고 한다 먼저 각 언어 스타일마다 표기법을 살펴보자 [C언어 Style] #include int main(int argc, const char * argv[]) { int n = 10; double d = 3.4; printf("%d, %f\n", n, d); scanf("%d", &n); } [C++ 언어 Style] #include int main(int argc, const char * argv[]) { // insert code here... int n = 10; double d = 3.4; std::cout
이번 포스팅에서는 포인터에 대해 알아보자 ! 정의 - 변수를 가리키는 변수 - 메모리 주소를 가리키는 변수 - 메모리 주소를 저장하고 있는 변수 이다. 일반적으로 * 키워드를 사용하고 있는 변수라고 보면 된다. 아래와 같이 pointer변수의 value값과 num변수의 주소 값이 같은 것을 볼 수 있다 예제(포인터) 위의 내용을 코드로 나타내면 다음과 같다. ※여기서 &연산자는 단향일 경우는 주소를 나타내는 연산자이다. 다항일 거유는 비교구문으로 and표시로 사용 int num = 10; int* pointer = # 그럼 이 결과가 어떻게 되는지 한번 살펴보자. #include using namespace std; int main() { int num = 10; int* pointer = &nu..
우리가 만든 MyString 문자열 클래스에 == 연산자 오버로딩하여 문자열 비교 기능을 추가해보자 연산자 오버로딩이란? +, -, ==, [ ]와 같은 기본적으로 정의되어 있는 연산자 들을 우리의 입맛에 맞게 변형해서 사용할 수 있는것을 의미 operator 연산자 기본 구조는 다음과 같다. "(리턴타입) operator (연산자)(연산자가 받는인자)" 변수 정의 1) char* string_content : 문자열 데이터를 가르키는 포인터 2) int string_length : 문자열 길이 3) int memory_capacity : 현재 할당된 용량 char* string_content; int string_length; int memory_capacity; 생성자 소멸자 정의 1) 'a', 'b..