티스토리 뷰
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 |