클래스를 흉내낸 구조체 질문
글쓴이: livey / 작성시간: 일, 2011/11/27 - 3:35오후
오늘 어떤 소스를 보다가 아래에 구조체 BB처럼 클래스와 똑같이 생긴 구조체를 보게되었습니다
컴파일도 잘되고 실행도 문제 없습니다
구조체 멤버변수로 함수포인터를 포함시키고 함수 주소를 대입하여 클래스를 흉내내는건 알고있었지만
BB 구조체처럼 클래스와 거의 똑같은 경우는 처음 봅니다
Visual Studio 2005를 쓰고있는데
다른 컴파일러에서도 이런 형태의 구조체도 허용되는건지(C++표준인지??)
아니면 MSVC에서만 허용되는건가요?
그리고 이런식으로 사용하는 이유를 모르겠네요
C컴파일러와 호환성을 위해서 그런건가
머리가 복잡하네요..
//
struct BB {
public:
int nNum1;
int nNum2;
static int sum(int,int);
int func(int);
};
int BB::sum(int n1, int n2)
{
return n1+n2;
}
int BB::func(int b)
{
return b+b;
}
//
void main()
{
int c;
//
BB struct1;
c = BB::sum(2,4);
c = struct1.func(5);
}
Forums:
C++에서 class와 struct는 접근범위가
C++에서 class와 struct는 접근범위가 지정되지 않은 멤버가 public이냐 private의 차이만 있을뿐 나머지는 동일합니다.
네에
찾아보니 접근지정자를 제외하고는 완전히 똑같은거였군요 답변감사합니다~~
댓글 달기