본문 바로가기 메뉴 바로가기

JHB의 삽질 이야기

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

JHB의 삽질 이야기

검색하기 폼
  • 분류 전체보기 (372)
    • JHB (23)
      • IT 이야기 (4)
      • 잡다한 이야기 (19)
    • Cloud (44)
      • AWS (40)
    • Language (46)
      • C C++ (26)
      • C# (2)
      • Java (1)
      • Python (16)
    • Development (221)
      • Windows (62)
      • Mobile (72)
      • Linux (6)
      • Driver (12)
      • Firmware & HW (3)
      • Algorithm (14)
      • CM&CI&CD (14)
      • Web개발 (8)
      • Container (1)
      • Database (1)
      • Etc (26)
      • Tip (2)
    • MUSIC (17)
      • Listen (12)
      • Compose (5)
    • ETC (20)
      • Public (20)
    • TOOL/FRAMEWORK
      • MFC
      • WPF
      • GIT
    • LANGUAGE
      • C/C++
      • C#
      • Java
      • Python
  • 방명록

Language (46)
[C++] class를 주고 받을땐 레퍼런스를 사용하자.

클래스를 주고 받을땐 레퍼런스를 사용하자!! 클래스 전체를 call by value로 넘긴다면 그 메모리는 어머어머하지만 레퍼런스로 넘기게 되면 겨우 포인터 변수의 크기 만큼만 넘기고 끝이다. 예를 들어서 AddPoint(POINT point); 라는 Method가 있다면 AddPoint(const POINT &point); 가 나을 것이다. (const는 적절히 써주자) 물론 호출한 놈의 인스턴스가 사라지지 않는 것이 확실히 될 때 얘기다.

Language/C C++ 2011. 1. 28. 11:43
[C++] 분기문을 싫어하는 나같은 사람에겐..

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=829244&ref=829244 나는 분기문을 좀 싫어한다 -.-;; 뭔가 소스가 길어지는 느낌이라서.. 예를 들어 단순히 form열기 같은 것을 하는데 switch문으로 길게 늘리는게 뭔가 안깔끔해 보인다. switch(nIndex) case: 0 Form1열기 case: 1 Form2열기 case: 2 form3열기 이걸 간결히 해주기 위해 아래처럼 쓸 수 있다. Form arFrom[3]; arForm[0] = Form1; arForm[1] = Form2; arForm[2] = Form3; arForm[nIndex].폼열기 이걸 다른 곳에도 응용해 보면, 입력한 숫자에..

Language/C C++ 2010. 11. 30. 09:54
[C++] RTTI와 vtable 그리고 RTCI

상속한 클래스를 넘겨 줬을 때 해당 클래스의 자료형이 뭔지 정확히 알기 위해 사용한다. 컴파일 시에 RTTI를 사용하여 컴파일 하면 vtable을 사용 할 수 있다. vtable은 가상 함수 테이블인데 아래의 소스를 함 보자. class Parent{ public: virtual void func(Parent obj); }; class Child : public Parent{ public: virtual void func(Parent obj); }; 이런 클래스가 있을 때 Parent p; Child c; p.func(p); p.func(c); 이렇게 하면 함수 func에서는 인자로 들어온 Parent obj에 대하여 이것이 Child인지 Parent 인지 알 길이 없다. 자바에서는 걍 p.getClas..

Language/C C++ 2010. 11. 25. 15:37
[C++] dynamic_cast, const_cast, reinterpret_cast, static_cast

dynamic_cast const_cast reinterpret_cast static_cast A가 B의 superclass일 때 A* a; B* b = new B(); a = (A *)b; 이거는 dynamic_cast(b);와 같음 dynamic_cast는 safe함. 서브->슈퍼 캐스팅은 상관 없지만 슈퍼->서브 캐스팅은, C style로 캐스팅하면 캐스팅이 되긴 하지만, 참조 할 수 없는 멤버를 참조 하려 하면 런타임 에러가 발생함. dynamic_cast를 이용하면 서브->슈퍼 일때만 캐스팅 하고 아닐 대는 null을 참조함. 따라서 null 체크를 통해 런타임 에러를 방지할 수 있다. 덧, 포인터로 선언한 클래스 일때만 된다. Parent *p1 = new Child; Parent *p2 = ..

Language/C C++ 2010. 11. 24. 11:07
[C++] 멤버 변수에서 생성자를 가진 변수 만들기

예를 들어 인자가 한개 달린 생성자만을 갖고 있는CDevice 라는 class가 있다고 했을 때 class CDevice{ public: CDevice(int a); }; 이 CDevice를 다른 클래스에서 멤버 변수로 사용할려면 어찌 해야 할까? 자바의 경우는 걍 class CObject{ public CDevice mDevice = new Device(n); public CObject(){ } }; 해주면 되겠지만.. C++(/MFC)은 그렇지 않다.. 물론 포인터로 선언해 준다면 저런식으로 해주면 좋겠지만 일반 멤버 변수로 생성자를 가지도록 변수 생성을 할려면 어떻게 해야할까 class CObject{ public: CDevice m_Device; CObject(); } CObject::CObjec..

Language/C C++ 2010. 10. 6. 17:50
[C++] Algorithm 헤더를 이용한 정렬

#include #include using namespace std; int main() { int a[10] = {5,4,2,6,5,3,10,9,13,5}; sort(a,a+10); //여기 for(int i = 0;i < sizeof(a)/sizeof(int);i++) { printf("%d\n",a[i]); } return 0; }

Language/C C++ 2010. 9. 7. 11:21
C++ Vector와 List의 사용

Vector 사용법 #include #include using namespace std; int main() { int i; int num =10; vector vi; for(i = 0;i < num;i++) { vi.push_back(i*2); //vi[i] = i*2; } for(i = 0;i < num;i++) { printf("vi[%d] = %d\n",i,vi.at(i)); //vi[i]도 됨 } printf("size of vector : %d\n",vi.size()); return 0; } List 사용법 #include #include using namespace std; int main() { list li; int i; for(i = 0;i < 5;i++) { li.push_back(i..

Language/C C++ 2010. 9. 7. 11:18
UAC 내에서 한시적으로 Admin권한 상승 시키기

잘은 모르겠지만 이것저것 뒤져보니 꽤 나왔다. 일단 응용프로그램을 여러개로 쪼개서 만든 후 ShellExecute에서 lpOperation값을 runas로 하여 실행하는게 가장 간단한 것 같다. 이 경우 관리자 권한으로 상승 시킬지 요구하는 창이 하나 뜬다고 한다. 그리고 COM ATL을 써서 하는 The COM Elevation Moniker 라는게 있는 것 같다. 링크는 http://msdn.microsoft.com/ko-kr/library/ms679687.aspx http://blogs.msdn.com/b/vistacompatteam/archive/2006/09/28/cocreateinstanceasadmin-or-createelevatedcomobject-sample.aspx 이거고 예제 소스는 ..

Language/C C++ 2010. 7. 8. 10:21
이전 1 2 3 4 5 6 다음
이전 다음
공지사항
최근에 올라온 글
  • Serverless로 E-Commerce⋯
  • 갑자기 RDS CPU 점유율이⋯
  • DDB Singletable 디자인
  • AWS CLI v2 에서 명령어⋯
최근에 달린 댓글
  • 정답입니다 중상수준입니다.⋯
  • 글 지우시는게 좋을거같아요⋯
  • 다른글 배껴오신건가요?
  • 안녕하세요, 혹시 Kinesis Da⋯
Total
812,793
Today
57
Yesterday
198
링크
  • Kaspyx - Hacking
  • JHB LinkedIn
  • Dive into Deep Learning
TAG
  • linux
  • 음악
  • 프로그래밍
  • C
  • it
  • 리눅스
  • kering
  • android
  • API
  • source
  • driver
  • winapi
  • C++
  • db
  • Quiz
  • gcc
  • Cloud
  • Visual C++
  • java
  • AWS
  • 드라이버
  • Python
  • NDK
  • MFC
  • jni강좌
  • jni
  • 안드로이드
  • Troubleshooting
  • database
  • algorithm
more
«   2022/05   »
일 월 화 수 목 금 토
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        
글 보관함
  • 2022/03 (1)
  • 2021/11 (1)
  • 2021/10 (1)
  • 2021/09 (1)
  • 2021/08 (1)

Blog is powered by Tistory / Designed by Tistory