본문 바로가기

[C++]인라인 함수.

반응형
  1. class P{

    public:

    int func

    {

    return

    }

       

    }

       

       

       

  2. class P{

    public:

    int func();

       

    }

       

    inline int P::func()

    {

       

    return 2;

    }

       

       

    2번에서 inline을 붙이지 않았다면 2번은 함수를 호출해줘야 하는 형식이다.

    왜냐하면 함수가 클래스 밖에 있기 때문이다. 하지만 inline을 붙여줌으로해서 1번 예제나 2번 예제는 같아지는 것이다.

       

    헤더파일에는 인라인 멤버함수도 넣어줘야 한다.

       

    inline int fun()

    {

    return 2;

    }

       

    main()

    {

    func();

       

    }

       

    인라인이 됬다는 것은 호출을 하지 않고 main문 안에 들어간다는 것이다.

    용량은 커지는 반면 호출과정을 생략하기 때문에 빨라진다.

       

    인라인 함수를 만드는 법.

       

    클래스의 내부에 정의한 멤버함수들은 모두 자동으로 인라인 함수가 된다.

    클래스의 외부에 정의한 멤버 함수는 함수의 정의 앞에 inline 키워드를 추가한다.

       

       

    #ifndef POINT_H

    #define POINT_H

       

    class Point

    {

    public:

      void Print();

       

      Point();

      Point(int initialX, int initialY);

      Point(const Point& pt);

       

      void SetX(int value);  //SetX , SetY함수의 원형만 놨둔다.

      void SetY(int value);

       

        

      int Getx() {return x;};

      int GetY() {return y;};

       

    private:

      int x,y;

    };

       

       

      inline void Point::SetX(int value)  //inline 써준다.

      {

        if(value < 0)    x=0;

        else if (value > 100)  x=100;

        else      x=value;

      }

       

      inline void Point::SetY(int value)

      {

        if(value <0)    y=0;

        else if(value > 100)    y=100;

        else      y=value;

      }

       

       

    #endif

       

    꼭 헤더파일에서만 있어야 한다.

    .cpp 파일에서는 오류가  발생한다.

반응형
-->