C++/summary

클래스 - 멤버 함수의 외부 정의

gandus 2010. 5. 27. 12:51

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 을 지닌다.