// staticInherited.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include < stdio.h > class base { public: base() : m_BaseValue(1) {;} static base& GetInstance(); void setBase(int value) { m_BaseValue = value; } int getBase() { return m_BaseValue; } void setBaseStatic(int value) { m_BaseStatic = value; } int getBaseStatic() { return m_BaseStatic; } private: int m_BaseValue; static int m_BaseStatic; }; class child : public base { public: child() : m_ChildValue(2) {;} static child& GetInstance(); void setChild(int value) { m_ChildValue = value; } int getChild() { return m_ChildValue; } void setChildStatic(int value) { m_ChildStatic = value; } int getChildStatic() { return m_ChildStatic; } private: int m_ChildValue; static int m_ChildStatic; }; int _tmain(int argc, _TCHAR* argv[]) { base b; child c; c.setBaseStatic(5); base::GetInstance().setBaseStatic(20); child::GetInstance().setBaseStatic(1); c.setChildStatic(11); child::GetInstance().setChildStatic(22); base bb; child cc; cc.setChildStatic(55); cc.setChild(100); bb.setBase(30); bb.setBaseStatic(200); child::GetInstance().setChild(40); child::GetInstance().setBase(77); base::GetInstance().setBase(44); base::GetInstance().setBaseStatic(888); return 0; } int base::m_BaseStatic = 0; base& base::GetInstance() { static base b; return b; } int child::m_ChildStatic = 0; child& child::GetInstance() { static child c; return c; }
참고로 이 코드는 아무짝에 쓸모없는 코드임을 밝힙니다. :-)
이건 아무 문제 없이 잘 되는군.
ReplyDelete범인은 template 인건가!!!
하하하 알아냈다.
ReplyDelete양 부등호 사이에 공백을 넣어주니 문제없어졌다.
음. 그럼 stream 표현하는 더블 부등호는 어케 나오려나. -_-;