클래스의 friend 선언 어떻게 하나요?
/*==========================
Point Class
===========================*/
#ifndef CROSSPOINT_H
#define CROSSPOINT_H
class CROSSPOINT{
private:
CROSSPOINT* p_direction[4];
/*
p_direction[0] -> left
p_direction[1] -> right
p_direction[2] -> up
p_direction[3] -> down
*/
int x;
int y;
int number;
public:
CROSSPOINT();
CROSSPOINT( int init_x, int init_y );
};
#endif
#ifndef MAP_H
#define MAP_H
#include"CrossPoint.h"
class MAP {
private:
// 방향은 우리가 카메라라 생각하고 보는 것과 일치한다. //
CROSSPOINT* points;
int cntPoint;
public:
MAP();
//void inputPoints();
//bool searchFastestWay( int start, int end );
};
#endif
MAP::MAP()
{
points = new CROSSPOINT[MAX_POINT];
cntPoint = 0;
}
CrossPoint의 멤버 변수가 private 라서
friend 로 선언을 해서 사용하고 싶은데 어떻게 해야 할지 모르겠습니다.
friend CROSSPOINT* points;
이렇게 하니깐 에러나고
points = new friend CROSSPOINT[MAX_POINT];
이렇게 해도 에러나고;;;
어떻게 friend 선언을 하나요?
friend 선언은 class하고
friend 선언은 class하고 function에게만 할당 할수 있지않나요?
=====================================
http://timothylive.net
제 생각은 CROSSPOINT
제 생각은
CROSSPOINT 클래스가 MAP에서 friend 로 설정이 된다면
MAP 클래스 내부에서 CROSSPOINT 의 private 멤버 변수까지 접근 가능할것이라고 생각했는데
이렇게 안되나요?
1%의 가능성이면 충분하다!
최선을 다하자!
1%의 가능성이면 충분하다!
최선을 다하자!
클래스 정의 시
클래스 정의 시 적어주면 됩니다.
May the F/OSS be with you..
----------------------------
May the F/OSS be with you..
friend 선언
friend 선언을 먼저 하고 쓰시면 되지 않나요 ?
아래처럼요.
friend class CROSSPOINT;
......
CROSSPOINT* points;
......
댓글 달기