#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 |