본문 바로가기

분류 전체보기

문자열 뒤집기 #pragma once #include #include #include using namespace std; void reverseString(char* s) { size_t size = strlen(s); char temp; for (size_t i = 0; i > d; return 0; } 더보기
버블 정렬 , 삽입 정렬 void BubblesSort(int A[], int n) { for (int pass=n; pass>=0; pass--) { for (int i=0; i A[i + 1]) {// 현제값이 다음요소의값보다 클경우 {10,9,7,8,6,4,5,2,3,1,0}; // 10,9이닌깐 조건에 맞어서 int temp = A[i];// 현제값을 템프에 저장 A[i] = A[i + 1];// 현제의값을 다음요소의값으로 교체 A[i + 1] = temp;// 다음값은 현제값 } } } } int main() { int N[11] = {10,9,7,8,6,4,5,2,3,1,0}; BubblesSort(N,11); // N = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} } void Selection(i.. 더보기
private 상속 class Bird { public: virtual void fly() = 0; virtual void work() = 0; }; class Eagle : public Bird { public: virtual void fly() { }; virtual void work() { }; }; class Tv { public: void upChannel() { }; void downChannel() { }; int getCurChennel() { return m_curChennel; }; protected: int m_curChennel; }; class RemoteCon : private Tv { public: void changeChennel(int nChennel) { while (getCurChennel.. 더보기
다중 배열 동적 생성 int main() { /* 2차원 배열 메모리 생성 */ int ** ary = new int*[10]; for (int i = 0; i 더보기
자주쓰는 const 위치에 관한 설명 class A { public: int I; A() : I(0){ } int Get() const { I = 10;// 이 함수는 멤버 변수가 갖는 값을 가져다 쓸 수는 있어도 변경은 할 수 없다. return I; }; }; int main() { int III = 10; int BBB = 20; const int * const pI = &III;; *pI = 5;// const int 변경 불가 pI = &BBB;// * const 변경 불가 } 더보기
추상 클래스 , 인터페이스 class A {// 추상 클래스 public: virtual void test() = 0; void sand(); }; class I {// 인터페이스 public: virtual void test() = 0; virtual void sand() = 0; }; class B : public A { public: virtual void test() { }; }; class C : public I { public: virtual void test() { }; virtual void sand() { } }; int main() { A AAA;// 단독으로 객체를 생성하지 못한다 I III;// 단독으로 객체를 생성하지 못한다 B BBB;// 생성 C CCC;// 생성 /* 추상 클래스는 순수 가상함수가 하나.. 더보기
다중 상속 다이아몬드 상속 AB CD위 그림은 c++다이아몬드 상속을 표현한 그림이다. class A{ -- ... -- }; // base class{ int weight; public: int getWeight() { return weight;};}; class B: public A{ -- ... -- };class C: public A{ -- ... -- } class D: public B, public C{ -- ... -- }; 위와 같은 다중 상속으로 생기는 문제점이 무엇인지는 아래 코드에서 나타난다. int main( ){ Liger lg ; --COMPILE ERROR-- int weight = lg.getWeight();}컴파일 에러가난다getWeight에 대한 호출이 "모호(ambiguous)"해서 컴파일러는 정.. 더보기
가상 함수란?. ( 정적 바인딩 동적 바인딩) class Parent { public: void func() { cout 더보기
19. 함수 호출 규약 호출 규약인수 전달스택 정리이름 규칙__cdecl오른쪽 먼저호출원_함수명__stdcall오른쪽 먼저함수_함수명@인수크기__fastcallECX, EDX에 우선 전달. 나머지는오른쪽 먼저함수@함수명@인수크기thiscall오른쪽 먼저, this 포인터는 ecx 레지스터로 전달된다.함수C++ 이름 규칙을 따름.naked오른쪽 먼저함수없음 __cdecl 가변인수 적용 가능 __stdcall C/C++ , WinApi 기본 호출 규약 thiscall C++ 글래스 맴버 함수 호출 규약. 함수 호출시 인자로 this가 무조건 들어가며 인자의 맨 왼쪽에 위치하면 인자전달시 제일 나중에 들어간다 더보기
99. DOD (Data Oriented Design) - 데이터 중심 디자인 (1) Data Oriented Design데이터 오리엔티 디자인데이터 오리엔티 프로그래밍 데이터 중심 디자인을 하면 아래와 같이 변경된다.(StackOverflow 참조) ?123456789class Ball{ Point pos; Color color; double radius; void Draw();}; vector balls; 이랬던 코드가.... ?12345678class Balls{ vector pos; vector colors; vector radius; void Draw();}; 이렇게 변한다!! 즉, 객체의 집합 구조가 데이터의 집합 구조로 변하게 된다~ 자세한 이론적인 내용은 다음 포스팅에... 관련 링크0. http://www.slideshare.net/hyurichel/data-oriente.. 더보기