프로그래밍/C++ 스피비 2011. 3. 29. 20:43
계산기 클래스가 이렇게 있다고 해보자 class Calcul { double m_result; public: void Plus(int N1, int N2) { m_result = N1 + N2; } void Minus(int N1, int N2) { m_result = N1 - N2; } void Multiple(int N1, int N2) { m_result = N1 * N2; } void Division(int N1, int N2) { if( N2 == 0 ) printf("분모가 0으로는 나눌수 없습니다.\n"); else m_result = N1 / N2; } double PrintResult(int N1, int N2) { return m_result; } public: Calcul() { m_..
프로그래밍/C++ 스피비 2011. 3. 29. 13:40
// 비쥬얼 컴파일러에서 가능하게한 문법파괴 ////////////////////구조파괴1 (구조체안에 생성자,소멸자 가능) struct st_A{ int a; }; st_A tempA = { 10 }; struct st_B{ int a; //구조체안에 생성자 가능 st_B() { a = 10; } }; st_B tempB; ////////////////////구조파괴2 ( 구조체도 접근제어가능 ) //구조체안에 접근제거 가능 struct st_C{ //private사용 private: int a; }; ////////////////////구조파괴3 (클래스도 typedef 가능) //기본 typedef struct st_D{ //private사용 private: int a; }TAGD, *pTAGD; ..
프로그래밍/C++ 스피비 2011. 3. 28. 23:35
임시 객체는 바로 생성되었다가 사라지는 객체를 말하는데, 몇가지 용도로 쓰인다. 다음 소스를 보자. #include class points { public: int x; int y; points(int x, int y) { this->x = x; this->y = y; } }; void Draw(points P) { //점을 찍는다. }; int main() { points P(2, 3); Draw(P); //일반적인 객체사용한 경우 Draw(points(2, 3)); //임시객체 사용한경우 //.... //.... return 0; } 위의 Draw 함수는 점을 찍는 함수라고 가정하자. 인자로는 points의 객체를 받고 있다. 위의 경우에서 Draw 함수에서 점을 찍을 좌표만을 받기위해 객체를 생성해..
프로그래밍/C++ 스피비 2011. 3. 28. 13:49
상속된 클래스마다 동적할당된 범위가 다르다! 근데 부모 객체포인터로 동적할당하고, delete 시켜주면 부모클래스만큼만의 크기만을 제거하게된다. 이것을 막기위해 캐스팅연산을 해야한다. 하지만 사용자가 실수를 유발하기 쉽다. 그것을 막기위해 delete 해주는 소멸자에 virtual을 해주는 것이다!!
프로그래밍/C++ 스피비 2011. 3. 28. 12:32
//Inher_A, Inher_B, Inher_C 클래스 정의 class Inher_A{ private: int m_A1; public: void SetDataA( int temp ) { m_A1 = temp; printf("SetData() 호출\n"); } public: Inher_A() { m_A1 = 0; printf("Inher_A() 생성자 호출됨\n"); } }; class Inher_B : public Inher_A { public: int m_B1; void SetDataB( int temp ) { m_B1 = temp; printf("SetData() 호출\n"); } public: Inher_B() { m_B1 = 0; printf("Inher_B() 생성자 호출됨\n"); } }; ..