class car{
public :
int speed;
int getSpeed(){} // 흔히 이런식으로 멤버 함수를 정의 하지만
}; // 함수가 길어지면 보기 복잡해진다.
그래서
class car{
public :
int speed;
int getSpeed(); // 이렇게 호출한후
};
int car :: getSpeed(){ return speed }; // 선언해준다. , 인라인 처럼 쓸려면 앞에 인라인 붙여주면 됨.
내부 정의는 자동으로 인라인 함수가 된다. - > 오버헤드가 없어진다. (짧은 함수를 호출할때)
하지만 외부 정의는 인라인 아니다.
실질적 코드는 이렇다
class Car {
public:
int getSpeed();
void setSpeed(int s);
void honk();
private:
int speed; //속도
};
int Car::getSpeed()
{
return speed;
}
void Car::setSpeed(int s)
{
speed = s;
}
____________________________________________________________________________
함수의 중복정의
void Car::setSpeed()
{
speed = 0;
}
void Car::setSpeed(int s)
{
speed = s;
}
________________________________________________________________________
car.h - > car 인터페이스 - > 클래스의 선언만 되어있다.
car.cpp - > #include"car.h" car 클래스의 함수등 정의를 해준다.
main.cpp - > #include "car.h" car 클래스의 사용.
_______________________________________________________________________
UML(Unified Modeling Language)
c++ 에서는 클래스 = 구조체 이다.
하지만 구조체는 기본값으로 public 을 지닌다.