각 게시판의 주제에서 벗어나는 게시물을 삭제 전에 임시로 보관하는 곳입니다. 읽기 전용이나, 자신의 글을 삭제, 수정하는 것은 가능합니다.
-
비회원
Post
by 비회원 »
Code: Select all
template <typename T>
class Base
{
public:
static T* mGlobal;
}
class A : pubic Base<A>
{
}
class B : public Base<B>
{
}
class C : public Base<C>
{
}
이렇게 되면 A와 B 와 C는 Base클래스의 static T* mGlobal;을 공유하게 되는 건가요 아니면 서로
각각의 static A* mGlobals; static B* mGlobals; static C* mGlobals; 가 생기게 되는건가요.
무척 궁금합니다. 답변 부탁드립니다. 객체 지향, C++ 묘하게 재밌군요.
-
비회원
Post
by 비회원 »
비회원 wrote:Code: Select all
template <typename T>
class Base
{
public:
static T* mGlobal;
}
class A : pubic Base<A>
{
}
class B : public Base<B>
{
}
class C : public Base<C>
{
}
이렇게 되면 A와 B 와 C는 Base클래스의 static T* mGlobal;을 공유하게 되는 건가요 아니면 서로
각각의 static A* mGlobals; static B* mGlobals; static C* mGlobals; 가 생기게 되는건가요.
무척 궁금합니다. 답변 부탁드립니다. 객체 지향, C++ 묘하게 재밌군요.
BASE<A>,BASE<B>,BASE<C> 둘다 전혀 다른 객체입니다
템플릿 코드만 공유 할뿐 실질적으로 컴파일할때 3가지 버전의 클래스가 생성되는거죠
따라서 static T* mGlobal; 이걸 공유하지 않습니다