달력

62025  이전 다음

  • 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


#include<iostream.h>
// NetMeeting

class bumo
{
 int a;
public :
 virtual void print( ) { cout << "난 부모의 print( ) 함수다!" << endl; }
 virtual void sunsu( ) = 0;  // 순수가상함수
};

class jasic : public bumo
{
 int b;
public :
 void print( ) { cout << "난 자식의 print( ) 함수다!" << endl; }
 void sunsu( ) { cout << "순수가상함수의 정의!" << endl; }  // 순수가상 함수의 정의
};

void main ( )
{
 // bumo puhaha;   // 에러 : 추상 클래스는 객체로 만들수 없다.
 jasic ob;
 ob.print( );   // 자식의 print가 나온다.
 ob.bumo::print( );  // 부모의 print가 나온다.

 jasic *son = &ob;
 son -> print( );  // 자식의 print가 나온다.
 son -> bumo::print( ); // 부모의 print가 나온다.

 bumo *mom = &ob;  // 부모 클래스형 포인터 변수는 자식 객체의 주소를 보관 할 수 있다.

 mom -> print( );  // 부모의 print가 나온다.

 bumo &fa = ob;   // 부모 클래스형 레퍼런스는 자식 객체에 대한 별명이 될수 있다.

 fa.print( );   // 부모의 print가 나온다.
}


/*
class bumo
{
 int a;
public :
 void print( ) { cout << "난 부모의 print( ) 함수다!" << endl; }
};

class jasic : public bumo
{
 int b;
public :
 void print ( ) { cout << "난 자식의 print( ) 함수다!" << endl; }
 void test( ) { }
};

void main ( )
{
 jasic ob;
 ob.print( );   // 자식의 print가 나온다.
 ob.bumo::print( );  // 부모의 print가 나온다.

 jasic *son = &ob;
 son -> print( );  // 자식의 print가 나온다.
 son -> bumo::print( ); // 부모의 print가 나온다.

 bumo *mom = &ob;  // 부모 클래스형 포인터 변수는 자식 객체의 주소를 보관 할 수 있다.

 mom -> print( );  // 부모의 print가 나온다.
 // mom -> test( );  // bumo형 포인터는 jasic영역을 역참조 할 수 없다.

 bumo &fa = ob;   // 부모 클래스형 레퍼런스는 자식 객체에 대한 별명이 될수 있다.

 fa.print( );   // 부모의 print가 나온다.
 // fa.test( );   // bumo형 레퍼런스는 jasic영역을 참조 할 수 없다.
}
*/

/*
class bumo
{
 int a;
public :
 void print( ) { cout << "난 부모의 print( ) 함수다!" << endl; }
};

class jasic : public bumo
{
 int b;
public :
 void print ( ) { cout << "난 자식의 print( ) 함수다!" << endl; }
};

void main ( )
{
 jasic ob;
 ob.print( );   // 자식의 print가 나온다.
 ob.bumo::print( );  // 부모의 print가 나온다.

 jasic *son = &ob;
 son -> print( );  // 자식의 print가 나온다.
 son -> bumo::print( ); // 부모의 print가 나온다.
}
*/

/*
class st
{
 int stack[5];
 int top; 
public :
 st ( ) { top = -1; }
 void push(int x) // stack에 data를 삽입하는 함수
 {
  top++;
  stack[top] = x;
 }

 int pop( )   // stack에 top 원소를 삭제하고 리턴하는 함수
 {
  return stack[top--];
 }
};

class st2 : public st
{
public :
 void push(int x)
 {
  if(top==4)
   cout << "Stack Full!" << endl;
  else
   st::push(x);
 }
 int pop( )
 {
  if(top==-1)
  {
   cout << "Stack Empty!" << endl;
   return -999;
  }
  else
   return st::pop( );
 }
};

void main ( )
{
 st ob;
 ob.push(10); ob.push(20); ob.push(30); ob.push(40); ob.push(50); ob.push(60);
 cout << ob.pop() << endl;  // 50
 cout << ob.pop() << endl;  // 40
 cout << ob.pop() << endl;  // 30
 cout << ob.pop() << endl;  // 20
 cout << ob.pop() << endl;  // 10
 cout << ob.pop() << endl;  // 60
}
*/

/*
int queue[5];
int front = 0;
int rear = 0;

void enqueue(int x)
{
 rear = (rear+1)%5;
 if(rear==front)
 {
  cout << "queue Full!" << endl;
  rear = rear - 1;
  if(rear==-1)
   rear = 4;
  return;
 }
 else
 {  
  queue[rear] = x;
 }
}

int dequeue( )
{
 if (front==rear)
 {
  cout << "queue Empty!" ;
  return -999;
 }
 else
 {
  front = (front+1)%5;
  return queue[front];
 }
}

void main ( )
{
 enqueue(10); enqueue(20); enqueue(30); enqueue(40); enqueue(50);
 cout << dequeue( ) << endl;  // 10
 cout << dequeue( ) << endl;  // 20
 cout << dequeue( ) << endl;  // 30
 cout << dequeue( ) << endl;  // 40
 cout << dequeue( ) << endl;  // 50

 enqueue(60); enqueue(70);
 cout << dequeue( ) << endl;  // 60
 cout << dequeue( ) << endl;  // 70

 enqueue(80); enqueue(90);
 cout << dequeue( ) << endl;  // 80
 cout << dequeue( ) << endl;  // 90
}
*/

/*
int queue[5];
int front = 0;
int rear = 0;

void enqueue(int x)
{
 rear = (rear+1)%5;
 if(rear==front)
 {
  cout << "queue Full!" << endl;
  rear = rear - 1;
  if(rear==-1)
   rear = 4;
  return;
 }
 else
 {  
  queue[rear] = x;
 }
}

int dequeue( )
{
 if (front==rear)
 {
  cout << "queue Empty!" ;
  return -999;
 }
 else
 {
  front = (front+1)%5;
  return queue[front];
 }
}

void main ( )
{
 enqueue(10); enqueue(20); enqueue(30); enqueue(40); enqueue(50);
 cout << dequeue( ) << endl;  // 10
 cout << dequeue( ) << endl;  // 20
 cout << dequeue( ) << endl;  // 30
 cout << dequeue( ) << endl;  // 40
 cout << dequeue( ) << endl;  // 50
}
*/

/*
int queue[5];
int front = -1;
int rear = -1;

void enqueue(int x)
{
 rear++;
 queue[rear] = x;
}
int dequeue( )
{
 if (front==rear)
 {
  cout << "queue Empty!" ;
  return -999;
 }
 else
 {
  front++;
  return queue[front];
 }
}

void main ( )
{
 enqueue(10); enqueue(20); enqueue(30); enqueue(40); enqueue(50);
 cout << dequeue( ) << endl;  // 10
 cout << dequeue( ) << endl;  // 20
 cout << dequeue( ) << endl;  // 30
 cout << dequeue( ) << endl;  // 40
 cout << dequeue( ) << endl;  // 50
}
*/

/*
class nike
{
protected :     // 보호멤버. 보호멤버는 상속이 가능하다.
 const int nai, ki;
public :
 nike(int x) : nai (5), ki(6) { cout << "난 부모의 생성자!" << x << endl; }
 ~nike() { cout << "난 부모의 소멸자!" << endl; }
 void print()
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
};

class nike2 : public nike
{
 int data;
public :
 nike2(int x, int y) : nike(x), data(9) { cout << "난 부모의 생성자!" << y << endl; }
 ~nike2() { cout << "난 부모의 소멸자!" << endl; }
};

void main ( )
{
 nike2 ob(55, 77);
 ob.print();
}
*/

/*
class nike
{
protected :     // 보호멤버. 보호멤버는 상속이 가능하다.
 const int nai, ki;
public :
 nike(int x) : nai (5), ki(6) { cout << "난 부모의 생성자!" << x << endl; }
 ~nike() { cout << "난 부모의 소멸자!" << endl; }
 void print()
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
};

class nike2 : public nike
{
public :
 nike2(int x, int y) : nike(x) { cout << "난 부모의 생성자!" << y << endl; }
 ~nike2() { cout << "난 부모의 소멸자!" << endl; }
};

void main ( )
{
 nike2 ob(55, 77);
 ob.print();
}
*/

/*
class nike
{
protected :     // 보호멤버. 보호멤버는 상속이 가능하다.
 int nai, ki;
public :
 nike(int x) { cout << "난 부모의 생성자!" << x << endl; }
 ~nike() { cout << "난 부모의 소멸자!" << endl; }
 void print()
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
};

class nike2 : public nike
{
public :
 nike2(int x, int y) : nike(x) { cout << "난 부모의 생성자!" << y << endl; }
 ~nike2() { cout << "난 부모의 소멸자!" << endl; }
 void set(int x, int y) { nai = x, ki = y; }
};

void main ( )
{
 nike2 ob(55, 77);
 ob.set(10,20);
 ob.print();
}
*/

/*
class nike
{
protected :     // 보호멤버. 보호멤버는 상속이 가능하다.
 int nai, ki;
public :
 nike(int x) { cout << "난 부모의 생성자!" << x << endl; }
 ~nike() { cout << "난 부모의 소멸자!" << endl; }
 void print()
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
};

class nike2 : public nike
{
public :
 nike2(int x) : nike(55) { cout << "난 부모의 생성자!" << x<< endl; }
 ~nike2() { cout << "난 부모의 소멸자!" << endl; }
 void set(int x, int y) { nai = x, ki = y; }
};

void main ( )
{
 nike2 ob(77);
 ob.set(10,20);
 ob.print();
}
*/

/*
class nike
{
protected :     // 보호멤버. 보호멤버는 상속이 가능하다.
 int nai, ki;
public :
 nike() { cout << "난 부모의 생성자!" << endl; }
 ~nike() { cout << "난 부모의 소멸자!" << endl; }
 void print()
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
};

class nike2 : public nike
{
public :
 nike2() { cout << "난 부모의 생성자!" << endl; }
 ~nike2() { cout << "난 부모의 소멸자!" << endl; }
 void set(int x, int y) { nai = x, ki = y; }
};

void main ( )
{
 nike2 ob;
 ob.set(10,20);
 ob.print();
}
*/

'매니저 > C++' 카테고리의 다른 글

C++ 2011.10.02 (미검사)  (0) 2011.10.13
C++ 2011.10.01 (미검사)  (0) 2011.10.13
C++ 2011.09.24 (미검사)  (0) 2011.10.13
C++ 2011.09.18 (미검사)  (0) 2011.10.13
C++ 2011.09.17 (미검사)  (0) 2011.10.13
Posted by cdprkr2077
|