본문 바로가기

C++

(9)
[C++] lexicographical 이란? STL의 에 들어있는 lexicographical_compare 라는 함수가 있다. 그런데 lexicographical이 뭐지? lexicographical의 사전적 의미는 '사전 편찬의' 이다. 그러면 lexicographical order 는 '사전에 편찬되는 순서' 일 것이다. 사전에서 'childern' 이라는 단어를 찾고 있다고 생각해보자. 일단 우리는 c로 시작하는 섹션으로 갈 것이다. 그리고 그 다음 글자부터 한글자 한글자씩... ca, cb, cc... ch가 나올 때 까지 밑으로 훑어 내려 간다. 그렇다면 'chill' 이라는 단어는 children을 찾기 전에 나타날까, 아니면 찾은 후에 더 아래에 위치하고 있을까? c.h..i..l.... a.. b.. c.. d! 섹션에서 child..
[vector container] operator[] vs at 똑같은데 operator[]로 접근할 때 n이 out of bound 이더라도 예외를 발생시키지 않으며 이는 undefined behavior이다. at은 똑같이 동작하는데 n이 size보다 크거나 같으면 out_of_range exception을 발생시킨다.
[C++] const vs constexpr 이제 ft_containers 하려고 vector class header를 좀 들여다 봤더니 무수히 많은 constexpr.. noexcept 들의 향연.. 저게 도대체 뭔가? 해서 한번 알아봤다. c++11부터는 constexpr 이라는 키워드를 쓸 수 있다. constexpr variable is guaranteed to have a value available at compile time. whereas static const members or const variable could either mean a compile time value or a runtime value. Typing constexpr express your intent of a compile time value in a muc..
[C++] this 는 NULL인 경우가 있는가? 다른 클래스가 멤버로 Weapon 클래스를 가지고 있고 이를 NULL로 초기화 시키는 경우가 있어서 그럼 NULL 확인을 클래스 함수 안에서 해도 되나? 싶어서 아래와 같은 코드를 입력 해봤다. std::string& Weapon::getType(void) { if (this) return (this->type); return (NULL); } 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true. 라는 에러 메시지가 뜬다. this는 늘 참인걸로 가정한다고 한다. NULL인 경우가 있다면 밖에서 어떻게 해줘야겠다.
[C++] 클래스 동적 배열 초기화 Zombie *zombie = new Zombie[N](name); 배열 할당할 때 초기화도 동시에 안되나 싶어서 저렇게 써봤더니 array 'new' cannot have initialization arguments 라는 에러 메시지가 뜬다. 안되는군.. 그리고 new Zombie[N] 이렇게 할당하면 클래스 생성자가 N번 호출됨!
[C++] 인스턴스화 (instantiate) 란? 프로그래밍에서의 인스턴스화 실제 인스턴스나 추상화의 특정 구현 또는 템플릿을 생성 하는 것을 말한다. 인스턴스화란 예를 들어 클래스 내의 특정 객체의 변형을 정의하고 거기에 이름을 짓고 실제 물리 메모리 등에 위치 하게 하는 것. .. 이라는데 즉 class Foo{ //describe } int main(){ Foo bar; } 라고 하면 Foo 클래스 선언을 참조하면서 객체에 bar 라는 이름이 붙여지고 메모리나 디스크에 이를 위한 자원이 할당 되게 되는 것. 그리고 Foo bar; 라는 코드가 한줄 있는 것이다. C++ 에서의 인스턴스화 인스턴스화 라는 용어 자체를 설명하려면 범위가 넓고 설명이 모호해질 수 밖에 없다. 구체적으로 C++ 에서는 어떤 클래스의 새로운 인스턴스를 생성 하는 것을 인스턴..
[C++?] 인스턴스와 객체의 차이점? instance vs object A class is a blueprint which you use to create objects. An object is an instance of a class - it's a concrete 'thing' that you made using a specific class. So, 'object' and 'instance' are the same thing, but the word 'instance' indicates the relationship of an object to its class. This is easy to understand if you look at an example. For example, suppose you have a class House. Your own house is..
[C++] 인스턴스 (instance) 란? 객체 지향 프로그래밍(OOP)에서 인스턴스(instance)는 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. OOP에서 객체는 클래스와 인스턴스를 포함한 개념이다. 이해하기 쉽게 일반적인 단어로 설명하자면, 계산 문제를 '입력과 출력이 명확히 기술된 것'으로 수학적으로 정의할 때, 계산 문제의 입력이 될 수 있는 것은 무한히 많이 존재하고 그것들 하나하나를 해당 계산 문제의 인스턴스라고 부른다.