본문 바로가기

좋은 클래스 = 정보은닉(클래스 내의 데이터에 바로 접근할 수 있는 것) , 캡슐화.

반응형

좋은 클래스 = 정보은닉(클래스 내의 데이터에 바로 접근할 수 있는 것) , 캡슐화.

클래스간의 결합도가 낮을 수록 좋은 클래스.

   

클래스의 정의 - 객체를 만들기 위해서 제일 먼저 하는 일은 클래스를 정의 하는 것.

붕어빵을 만들기 위해서 붕어빵 틀을 만든다고 생각하면 된다.

   

클래스를 선언하는 예제>

   

#include <iostream>

   

using namespace std;

   

   

class Point  //클래스를 정의한다.

{

  public: //메인함수에 직접적으로 접근 가능하다.

   

   

  int x, y;   //멤버 변수들

   

   

  void Print()  //멤버 함수

  {

    cout << "(" << x << " , " << y << ")\n";

  }

   

   

};

   

int main() //객체는 대부분 메인 함수에서 선언한다.

   

{

   

   

  return 0;    //아직 하는  없음.

}

   

클래스를 선언한 후 객체를 생성하는

   

예제>

객체는 pt1, pt2이다 . 여기서 public 를 삭제하면 메인함수에서 객체에 접근할 수 없다.

   

#include <iostream>

   

using namespace std;

   

   

class Point  //클래스를 정의한다.

{

  public:

   

   

  int x, y;   //멤버 변수들

   

   

  void Print()  //멤버 함수

  {

    cout << "(" << x << " , " << y << ")\n";

  }

   

   

};

   

int main()

   

{

  Point pt1 ,pt2;  //객체를 생성한다.

   

  pt1.x = 100;  //pt1 , pt2 초기화 한다.

  pt1.y = 100;  //. 연산자를 이용해서 접근.

  pt2.x = 200;

  pt2.y = 200;

   

  pt1.Print();  /pt1 ,pt2 내용을 출력한다.

  pt2.Print();

   

  return 0;    //아직 하는  없음.

}

   

멤버 함수 - 오보로딩 가능(함수 이름을 같은 것을 사용해도 구별할 수 있다는 것, 인자로 구별), 클래스의 정의 안에서 선언된 함수.

함수의 선언은 클래스 내부에서 하고 정의는 클래스 외부에서 한다.

   

#include <iostream>

using namespace std;

   

class Point

{

  public:    //멤버변수

  int x ,y;

   

  void Print();  //멤버함수

};

   

void Point::Print()

{

  cout<<"("<<x<<","<<y<<")\n";

}

   

int main()

{

  Point pt1 , pt2;  //객체를 생성한다.

   

  pt1.x = 100;  //pt1, pt2 초기화

  pt1.y = 100;

  pt2.x = 200;

  pt2.y = 200;

   

  Point pt3 = pt1;

   

  pt3.Print();

   

  pt3 = pt2;

   

  pt3.Print();

   

  return 0;

}

   

맴버함수를 정의할 때 들어가는 매개변수는 맴버함수에 들어가는 변수와는 다른 이름을 사용해야 한다.

   

반응형
-->