티스토리 뷰

IT/C++

[C++] 예제 3

DongChul 2014. 9. 25. 17:56

C++ 클래스


클래스(class)

C++ 에서 클래스란 구조체가 확장 된 것 이라고 생각하면된다

자바랑 비슷한점도 있지만 C++만의 문법이 따로있다.


class Car {

      public:

             int gear;

             string color;

             int speeddown();

             int speedup();

             int getspeed();

             void setspeed(int i);

      private: 

             int speed;

};


위의 예제를 보면 public으로 정의된변수와 함수를 저런 식으로 한번에 정의할 수가 있으며 자바와는달리 default 로 정희하면 private으로 정의된다.

위와같이 void setspeed();라는 함수의 원형을 선언해두면

클래스 선언 밑에 함수를 정의해야한다

int Car :: getspeed(){

    return speed;

}


이런식으로 정의를 해둬야 사용할 수 있다.


객체의 사용법은 자바랑 비슷하다.

위의 예시와 달리 다른 클래스를 선언한 예제이다

class Circle{

      public:

             int radius;

             double getArea();

};

             

double Circle:: getArea(){

             return 3.14 * radius * radius;

}

클래스의 마침은 항상 세미콜론으로 해줘야 한다.



위 예시를 적용한 c++파일이다.


int main(int argc, char *argv[])

{

    Circle donut;

    donut.radius = 1;

    double area = donut.getArea();

    cout << "donut의 면적은 " << area << "입니다."<<endl;

    

    Circle pizza;

    pizza.radius = 30;

    area = pizza.getArea();

    cout << "pizza의 면적은 " << area << "입니다."<<endl;

    

    Circle tire;

    tire.radius = 40;

    area = tire.getArea();

    cout << "tire의 면적은 " << area << "입니다." << endl; 

 

    system("PAUSE");

    return 0;

}


실행결과는



다른 예제로


Rectangle이란 클래스를 만들어 보겠다.


class Rectangle{

      public:

             int width;

             int height;

             int getArea();

};


int Rectangle:: getArea(){

    return width * height;

}


클래스의 구현은 위와 같다.


int main(int argc, char *argv[])

{

    Rectangle rect;

    rect.width = 3;

    rect.height = 5;

    int area = rect.getArea();

    cout << "rect의 면적은 " << area << " 입니다." <<endl;  

  

    system("PAUSE");

    return 0;

}


메인의 구현이고 실행결과는




마지막으로Car 클래스를 구현하는데 이번엔 생성자와 접근자의 개념을 추가한 예제이다.


class Car {

      public:

             int gear;

             string color;

             int speeddown();

             int speedup();

             int getspeed();

             void setspeed(int i);

      private: 

             int speed;

};


int Car:: speedup(){

   return  speed += 10;

}


int Car :: speeddown(){

    return speed -= 10;

}


int Car :: getspeed(){

    return speed;

}


void Car :: setspeed(int i){

     speed = i;

}    


클래스의 구현은 위와 같으며 메인은 아래와 같다.


int main(int argc, char *argv[])

{

    

    Car c;

    c.setspeed(100);

    c.color = "white";

    cout << "현재 c차의 속도는 " << c.getspeed() << endl;

    cout << "현재 c차의 색깔은 " << c.color << endl; 

    cout << "현재 c차의 속도는 " << c.speedup() << endl; 

   

    

    system("PAUSE");

    return 0;

}


실행결과는




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

통장관리프로그램  (2) 2014.09.26
[C++] BankAccount 예제  (0) 2014.09.25
[C++] 예제 2  (1) 2014.09.23
[C++] 예제 1  (0) 2014.09.15
[C++] C++기초  (0) 2014.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 31
글 보관함