c++ syntax 변수 재 정의....
글쓴이: korone.net / 작성시간: 금, 2007/03/02 - 4:54오후
#include <stdio.h>
struct A
{
int aaa;
int bbb;
A()
{
aaa = 1;
bbb = 2;
}
void print() { printf("A aaa:%d bbb:%d\n", aaa, bbb); }
};
struct B : public A
{
short aaa;
B() : A()
{
aaa = 3;
}
void print() { printf("B A::aaa:%d aaa:%d bbb:%d\n", A::aaa, aaa, bbb); }
};
int main(int argc, char** argv)
{
B bbb;
printf("B aaa:%d\n", bbb.aaa);
bbb.print();
return 0;
}편의상 struct로 했습니다.
A라는 객체에 int a;를 선언하고
B라는 객체는 A를 상속받은후에 다시 short a;로 선언했습니다.
이게 가능한지 오늘 처음 알았습니다.
이게 가능하도록 하면 많은 혼란이 일어날텐데. 왜 이런것을 가능케 해놓은것인지요?
혹시 아시는 분 있으신가요?
혹시나 gcc만 그런걸까 해서 msc로도 컴파일 해봤는데도 마찬가지네요.
member function()은 같은 형으로 선언해도 문제없다는것을 잘 알 고 있었지만 이렇게는 한번도 써 본적이 없어서 그런지 너무나 당황스럽습니다.
무슨 설계 철학이 있는건가요?
Forums:


댓글 달기