매니저/C++

C++ 2011.09.24 (미검사)

cdprkr2077 2011. 10. 13. 00:09

#include<iostream.h>

class bumo       // 부모 클래스
{
 int a;
public :
 void set ( int x ) { a = x; }
 void print( ) { cout << "a = " << a << endl; }
};

class jasic : public bumo    // 자식 클래스
{
 int b;
public :
 void input( int x ) { b = x; }
 void prn( ) { cout << "b = " << b << endl; }
 void callset(int x) { set(x); }
 void callprint( ) { print( ); }
};

void main ( )
{
 jasic ob;
 ob.set(10);      // bumo의 멤버이지만 상속받았음으로 호출가능
 ob.print( );      // bumo의 멤버이지만 상속받았음으로 호출가능
 ob.callset(99);
 ob.callprint( );
 ob.input(20);     // jasic의 멤버임으로 호출가능
 ob.prn( );      // jasic의 멤버임으로 호출가능
 cout << "sizeof(ob) = " << sizeof(ob) << endl;
}

 

 

/*
class zenit
{
 int x, y;
 
public :
 zenit(int a, int b) { x = a, y = b; }
 void print( ) { cout << "x = " << x << ", y = " << y << endl; }

 friend zenit operator + ( zenit temp, int data );   // 객체 + 정수 일때 호출되는 함수
 friend zenit operator - ( zenit temp, int data );   // 객체 - 정수 일때 호출되는 함수
 friend zenit operator + ( int data, zenit temp );   // 정수 + 객체 일때 호출되는 함수
 friend zenit operator + ( zenit temp1, zenit temp2 );  // 객체 + 객체 일때 호출되는 함수
};

zenit operator + ( zenit temp, int data )    // friend 함수를 이용해 구현한 연산자 오버로딩 함수
{
 temp.x = temp.x + data;
 temp.y = temp.y + data;
 return temp;
}

zenit operator - ( zenit temp, int data )    // friend 함수를 이용해 구현한 연산자 오버로딩 함수
{
 temp.x = temp.x - data;
 temp.y = temp.y - data;
 return temp;
}

zenit operator + ( int data, zenit temp )    // friend 함수를 이용해 구현한 연산자 오버로딩 함수
{
 temp.x = temp.x + data;
 temp.y = temp.y + data;
 return temp;
}

zenit operator + ( zenit temp1, zenit temp2 )    // friend 함수를 이용해 구현한 연산자 오버로딩 함수
{
 zenit im(0,0);
 im.x = temp1.x + temp2.x;
 im.y = temp1.y + temp2.y;
 return im;
}

void main ( )
{
 zenit ob(10,20), pb(0,0);
 pb = ob + 10;     // zenit와 int를 더할 수 있는 + 연산자의 오버로딩 함수가 호출된다.
 ob.print();
 pb.print();
 pb = pb - 5;     // zenit와 int를 뺄 수 있는 - 연산자의 오버로딩 함수가 호출된다.
 pb.print();
 pb = 10 + pb;     // int와 zenit를 더할 수 있는 + 연산자의 오버로딩 함수가 호출된다.
 pb.print();
 pb = ob + pb;     // zenit와 zenit를 더할 수 있는 + 연산자의 오버로딩 함수가 호출된다.
 pb.print();
}
*/

/*
class phone
{
 int num;
public :
 phone(int x){ num = x; }
 void print( ) { cout << "num = " << num << endl; }
 void operator ++ ( ) { num++; }
 void operator () ( ) { cout << num << endl; }
 void operator () (int x)
 {
  num = x;
  cout << "num이 " << num << "으로 변경됨" << endl;
 }
};

void main ( )
{
 phone ob(3);
 ob.print( );    // 3
 ob++;
 ob.print( );    // 4
 ++ob;
 ob.print( );    // 5
 ob();
 ob(10);
}
*/


/*
class nike
{
 int nai;
 int ki;

public :
 nike (int x, int y)    // 생성자 함수
 {
  nai = x;
  ki = y;
 }
 void print( )
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
 friend nike operator + (nike x, int y);     // 프렌드 함수
 friend nike operator - (nike x, int y);
};

nike operator + (nike x, int y)
{
 x.nai = x.nai + y;
 x.ki = x.ki + y;
 return x;
}

nike operator - (nike x, int y)
{
 x.nai = x.nai - y;
 x.ki = x.ki - y;
 return x;
}

nike operator + (nike x, int y)
{
 x.nai = x.nai + y;
 x.ki = x.ki + y;
 return x;
}

 

void main ( )
{
 nike ob(10,20), pb(10,20);   
 ob.print( );     // 10, 20
 ob = ob + 3;
 ob.print( );     // 13, 23
 ob = ob - 2;
 ob.print( );     // 11, 21
 ob = 3 + ob;
 ob.print( );     // 14, 24
 ob = ob + pb;
 ob.print( );     // 24, 44
 ob = ob + 3.5;
 ob.print( );     // 27, 47
}
*/


/*
class nike
{
 int nai;
 int ki;

public :
 nike (int x, int y)    // 생성자 함수
 {
  nai = x;
  ki = y;
 }
 void print( )
 { cout << "nai = " << nai << ", ki = " << ki << endl; }
 
 nike operator + (int y)
 {
  nai = nai + y;
  ki = ki + y;
  return *this;
 }

 nike operator + (nike y)
 {
  nai = nai + y.nai;
  ki = ki + y.ki;
  return *this;
 }
 nike plus(int y)
 {
  nike temp(0,0);
  temp.nai = nai + y.nai;
  ki = ki + y.ki;
  return *this;
 };

void main ( )
{
 nike ob(10,20), pb(10,20);
 ob.print( );     // 10, 20
 ob = ob + 3;
 ob.print( );     // 13, 23
 ob = ob + pb;
 ob.print( );     // 23, 43
}
*/

/*
class nike
{
 int nai;
 int ki;

public :
 nike (int x, int y)    // 생성자 함수
 {
  nai = x;
  ki = y;
 }
 void print( )
 { cout << "nai = " << nai << ", ki = " << ki << endl; }

 nike operator + (nike y)
 {
  nai = nai + y.nai;
  ki = ki + y.ki;
  return *this;
 }
 nike plus(int y)
 {
  nike temp(int y);
  nai = nai + y;
  ki = ki + y;
  return *this;
 };

void main ( )
{
 nike ob(10,20), pb(10,20);
 ob.print( );     // 10, 20
 ob = ob.plus(3);
 ob.print( );     // 13, 23
 ob = ob + pb;
 ob.print( );     // 23, 43
}
*/