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:
댓글 달기