- 책_곽용재님 홈페이지
- 책_노란북 - 책 가격비교
- 책_김재우-SICP번역
- 플밍_쏘쓰포지
- 플밍_CodingHorror ?
- 플밍_상킴
- 플밍_김민장님
- GPGStudy
- 플밍_미친감자님
- 플밍_jz
- 플밍_샤방샤방님
- 플밍_글쓰는프로그래머2
- 플밍_키보드후킹
- 사람_재혁
- 사람_kernel0
- 사람_박PD
- 사람_경석형
- 사람_nemo
- 사람_kikiwaka
- 사람_Junios
- 사람_harry
- 사람_어떤 개발자의 금서목록..
- 사람_모기소리
- 사람_낙타한마리
- 사람_redkuma
- 사람_영원의끝
- 사람_민식형
- 도스박스 다음카페
- 플레이웨어즈 - 게임하드웨어벤치마크
- http://puwazaza.com/
- David harvey의 Reading Marx's c…
- 씨네21
- 한겨레_임경선의 이기적인 상담실
- 본격2차대전만화 - 굽시니스트
- 영화_정성일 글모음 페이지
- 영화_영화속이데올로기파악하기
- 음식_생선회
- 죽력고
- 사람_한밀
- 플밍_수까락
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 태그가 아깝다
- 고등학교 사회공부
- BSP
- 정신분석
- 노무현
- 진중권
- 삼국지
- c++
- programming challenges
- 일리아스
- 유시민
- 건강
- 진삼국무쌍5
- 책
- modernc++
- 소비자고발
- 인문학
- 고전강의
- template
- 유머
- 영화
- 삼국지6
- Programming
- 게임
- 프로그래밍
- 단상
- 김두식
- 강유원
- stl
- 정성일
- Today
- Total
목록프로그래밍 (56)
lancelot.com
lvalue vs rvalue "표현식( expression )" 이 등호의 왼쪽에 놓일 수 있으면 lvlaue, 놓일 수 없으면 rvalue 각 언어마다 "정의가 약간씩 다르다." C++ 에서의 특징 lvalue rvalue 등호( = ) 의 왼쪽에 올 수 있다 등호( = )의 왼쪽에 올 수 없다 이름이 있고, 단일식을 벗어나서 사용가능 이름이 없고, 단일 식에서만 사용 주소 연산자로 주소를 구할 수 있다 주소 연산자로 주소를 구할 수 없다 참조를 반환하는 함수 문자열 literal 값을 반환하는 함수 실수/정수 literal 임시객체( temporary ) 상수는 rvalue 이다? -> No 모든 rvalue는 상수이다? -> No #include int x = 10; int f1() { retur..
type deduction 이란? 컴파일러가 주어진 조건(표현식)을 가지고 타입을 결정하는 과정 type deduction 이 발생하는 경우 template auto decltype auto 와 template 은 동일한 규칙을 사용 int main() { int n = 10; const int c = 10; auto a1 = n;// int a1=n; auto a2 = c;// (1) const int a2=c; // (2) int a2=c; ==> ok } 추론된 타입을 조사하는 방법 typeid(T).name() g++ : 실행파일 이름 | c++filt -t const / volatile / reference 정보가 출력되지 않는다. error 메세지 확인 의도적으로 에러를 발생시키면 에러 메세지..
Special member function 사용자가 제공하지 않으면 "컴파일러가 제공하는 멤버 함수" 디폴트 생성자 ( default constructor ) 소멸자 ( destructor ) 복사 생성자 ( copy constructor ) 복사 대입연산자 ( copy assignment ) 이동 생성자 ( move constructor ) 이동 대입연산자 ( move assignment ) Special member function 들이 "trivial 하다"고 하는 경우의 의미는? https://docs.microsoft.com/ko-kr/cpp/cpp/trivial-standard-layout-and-pod-types?view=msvc-170 Trivial 의 조건 컴파일러가 생성하는 Specia..
new / delete #include class Point { int x, y, z; public: Point(int a, int b, int c) : x{ a }, y{ b }, z(c) { std::cout
다중상속과 this 기반 클래스 포인터로 파생 클래스 객체를 가리킬 때 "객체 안에 있는 기반 클래스의 위치"를 가리킨다 다중 상속일 경우 객체의 주소와 다를 수 있다. static_cast VS reinterpret_cast static_cast 인자로 전달된 주소 안에서 기반 클래스의 위치(주소)가 반환된다. 상속관계가 아닌 경우 에러 reinterpret_cast 항상 인자로 전달한 주소가 동일하게 반환된다. 상속관계가 아니어도 에러 아님. 해당 메모리를 "다르게(다른 타입으로) 해석하겠다" 는것. #include struct A { int x; }; struct B { int y; }; struct C : public A, public B { int z; }; int main() { C cc; s..
Pointer to member data #include struct Point { int x; int y; }; int main() { int num = 0; int* p1 = # int Point::* p2 = &Point::y;// 멤버 함수포인터처럼 객체에.* 연산자를 사용해서 접근하기 위함 *p1 = 10;// ok //*p2 = 10;// error Point pt; pt.*p2 = 10;// pt.y=10 // *( (char*)&pt+p2 )=10; std::cout
멤버함수의 호출원리(this call) class Point { public: int x{ 0 }; int y{0}; public : void set(int a, int b) { x = a; y = b; } }; int main() { Point pt1; Point pt2; pt1.set(10, 20); pt2.set(10, 20); } 주의 실제 함수 인자가 전달되는 방식과 객체 주소가 전달되는 방식은 약간의 차이가 있다. 표준으로 정해진 사항은 아니므로 32bit/ 64bit 환경, 컴파일러에 따라서도 차이가 있을 수 있음. static member 함수는 객체의 주소가 전달되지 않는다. this call 이 아님. 객체의 주소를 알 수 없기때문에 x, y에 접근할 수 없음. member functi..
변환연산자 : 객체가 다른 타입으로 변환될 때 호출되는 함수 함수이름에 반환이 있기때문에 반환 타입을 표기하지 않는다 operator TYPE() const // 상수 멤버함수로 만드는 경우가 많다 { return 값; } 변환 연산자 vs 변환 생성자 int pn, Int32 un 일때 pn=un; ==>: un.operator int(); 변환연산자 객체(Int32) => Int로 변환될 때 un=pn; ==> pn.opertor Int32() 는 만들 수 없다. 대입연산자, un.operator=(int) 가 가능한지 찾아보고 변환생성자, Int32(pn) 이 가능한지 찾는다. #include class Int32 { int value; public : Int32() : value(0) {} Int..