In Class Static 와 Singleton


C++ 에서 클래스 안의 Static 필드를 사용하기 위해서 한가지 주의해야 할 항목이 있다.





StaticExample.h

#pragma once
#include<map>
#include <iostream>

using namespace std;
class StaticExample
{
private:
    static map<int, int> sampleMap;
public:
    static void CheckContainKey(int key);
}


StaticExample.cpp

#include "StaticExample.h"

map<int, int> StaticExample::sampleMap; // 이 부분이 없으면 LNK2001 , LNK1120 에러가 난다. void StaticExample::CheckContainKey(int key) { int already_count = sampleMap.count(key); cout << "count is : " << already_count << endl; }




추가로 

간단한 싱글턴 만들기



TestSingleton.h

#pragma once

#include <iostream>

using namespace std;
class TestSingleton
{

public:
    static TestSingleton* GetInstance();
    void Something();
private:
    static TestSingleton* instance;
    TestSingleton();
    
};


TestSingleton.cpp

#include "TestSingleton.h" TestSingleton* TestSingleton::instance = nullptr; // 이 부분이 없으면 LNK2001 , LNK1120 에러가 난다. TestSingleton* TestSingleton::GetInstance() { if (instance == nullptr) instance = new TestSingleton(); return instance; } void TestSingleton::Something() { cout << " single access method " << endl; } TestSingleton::TestSingleton() { cout << "single create " << endl; }


Yamecoder 야매코더_
C++(oF) 2016. 1. 24. 18:26

댓글을 달아 주세요

Powerd by Tistory, designed by criuce
rss