// 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 표현하는 더블 부등호는 어케 나오려나. -_-;