코딩을 하면서 static변수를 쓰면서 최근 문득 든 생각이 있다. “static변수를 생성자에서 초기화하면 새로운 객체를 로드할 때마다 해당 값으로 덮어써지는거 아니야?” 라는 생각이었다.물론 턱도 없는 생각이라는 걸 잘 알고 있고 그렇게 작동하지 않는다는 것쯤은 직
우리가 어떤 언어를 배우든, private은 해당 클래스 내에서만 접근 가능하고, protected는 상속관계일 때 접근이 가능하다고 배운다.그리고 이것은 대부분의 객체지향에서 단순 접근이 아니라 정의에서도 통용되는 말이다. 생각해보면 당연하다. 내가 호출할 수 없는
C/C++을 접해보면 가장 헷갈리는 것중 하나가 바로 선언과 정의가 분리돼있다는 것이다.(비교적)모던한 객체지향 언어들인 Java, \`C- 이번에는 C, C++에서 선언과 정의의 차이점이 무엇인지 알아보도록 하자.컴파일러가 참조할 식별자(identifier)와 이름을
private의 기준점은 인스턴스 기준이 아니라 클래스 기준이다.그렇기에 똑같은 클래스라면 외부 인스턴스를 받아와도, 프라이빗 멤버에 접근이 가능하다.\*\*중요한건 이게 JAVA에서도, C다른 인스턴스라도 같은 클래스면 private에 대해 접근이 가능하다. 이건 C
C++은 하나의 프로젝트를 여러개의 파일로 관리 가능하게 하기 위한 시스템으로헤더 파일시스템을 사용한다. (C++ 발표일: 1985년, C 발표일: 1972년)비교적 모던한 언어들인 Java, C- 헤더파일시스템은 내가 사용하고자 하는 기능이 들어있는 파일을 그대로 복
private 상속은 public 상속과 대조적으로 파생 객체(자식객체)가 기본 클래스 객체(부모객체)로의 변환이 불가능하다.대신, 내부적 멤버끼리는 private상속을 받은 객체의 기능을 사용할 수 있다.그렇기에 private상속은 is-a관계가 아닌 is-imple
내가 원하는 메모리에 직접 객체를 할당하는 것을 placement new라고 한다.다른 관점에서 본다면 생성자를 명시적으로 호출해주는 기능이라고도 볼 수 있다.문법은 꽤 간단한 편이다: new (MemAddr) ClassType(parameter);C++에선 원래 기존
msvc는 \`- 그런데 msdn을 보면Visual Studio 2015 이상에서는 \_\_alignof \_\_declspec( align ) 키워드와 같이msvc전용 키워드가 아닌,컴파일러 간에 이식 가능한 표준인 alignas alignof 연산자를 사용 할 수
1번코드 입니다.2번코드 입니다.자 위 두 개의 코드를 보면 어떤가요? 코드는 좀 달라도 똑같은 기능을 하는 코드처럼 보이죠?그런데 정말 재밌는 일이 일어납니다.위 코드에 weak_ptr을 첨가해봅니다.1번 코드에 weak_ptr을 첨가하면…sharedCustomDat
위 두 코드가 성능성으로 어떤 차이를 가졌는지는 많이들 들어보셨을 겁니다.“ ++i이 i++보다 빠르다” C++하는 사람들은 한 번 쯤은 들어봤을법한 말이죠.그런데, 진짜로 ++i가 i++보다 빠른지 점검 해보신 적 있으신가요?왜 ++i가 i++보다 빠른지 이유는 알고
0을 0으로 나누는건 불가능하기에 0/0은 NaN을 출력합니다.NaN끼리는 비교가 불가능하기때문에 비교값의 결과는 0입니다.0이 아닌 수를 0으로 나누는 것은 수학적으로는 불가능하지만 극한값을 가정한다면 무한대가 나올 수 있기에 무한대를 출력합니다.inf끼리는 같은 i