hahahia

간단한 Class프로그램을통한 Class의 개념과 특징 본문

Language/C++

간단한 Class프로그램을통한 Class의 개념과 특징

hahahia 2011. 5. 10. 21:59


클래스의 정의 :
부류를 형성하는 데이터들을 하나로 묶어 그 데이터들을 조작할 변수나 함수들을 포함

클래스의 장점 :
 1) 데이터의 은닉(information hiding) : 정보를 은닉할 수 있다.
 2) 데이터의 캡슐화(Encapsulation) : 같은 부류의 데이터나 메소드를 묶어서 프로그래밍 할 수 있음.

클래스의 구성 :
 데이터(멤버변수) + 메소드(멤버함수)

클래스의 접근 :

1.public
 - 어느곳에서나 접근가능
 - 멤버변수에 접근하는 검증된 메소드들을 public로 선언함.

2. private
 - 클래스 내부에서의 접근만 허용함
 - 데이터은닉을 위해 멤버변수를 private로 선언함

클래스의 사용 :
 클래스를 사용하기위해서는 정의된 클래스로부터 객체를 생성해야한다(object)
 ex )
 int a;  ==================== Date date;

멤버함수의 정의 :
 - 선언은 클래스 내부에서 하며 정의는 코드의 가독성을 위해
    외부에서 한다.
  ex ) Date::getDay()
        {
              함수의 내용;
         }




#include <iostream>

#include <string>

using namespace std;

 

class Date{

        public:

        Date(int ,int , int);  // Constructor

        void setMonth(int);    // member Function

        int getMonth();

        void setDay(int);

        int getDay();

        void setYear(int);

        int getYear();

        void DisplayDate();

        private: // members

               int month;

               int day;

               int year;

};

 

Date::Date(int a, int b, int c)

{

        setMonth(a);

        setDay(b);

        setYear(c);

}

void Date::setMonth(int a){

        if(a>= 1 && a<=12)

               month=a;

        else

               month=1;

}

int Date::getMonth() { return month; }

void Date::setDay(int b) { day=b; }

int Date::getDay() { return day; }

void Date::setYear(int c) { year=c; }

int Date::getYear() { return year; }

void Date::DisplayDate() { cout << month << "/" << day << "/" << year << endl; }

int main()

{

        Date date(123, 2, 2011); // make Object

        cout << "Month : " << date.getMonth() << endl;

        cout << "Day : " << date.getDay() << endl;

        cout << "Year : " << date.getYear() << endl;

        date.DisplayDate();

        return 0;

}

 

'Language > C++' 카테고리의 다른 글

Operator Overloading(연산자 오버로딩)  (0) 2012.09.01
1주차  (0) 2011.06.27
Class GradeBook Using an Array to Store Grades  (0) 2011.05.25
재귀함수를 이용한 fibonacci  (0) 2011.05.17
5주차 객체 과제  (0) 2011.05.10
Comments