2014-02-05 2 views
0

나는 내 자신의 목록 클래스를 구축하고 놀고있다. 새 목록 기능을 작성하는 데 벡터를 사용하고 싶지 않습니다. 나는 임의의 이름을 가진 배열을 간단하게 만들 수 있다고 생각한다. 마지막으로 생성 된 배열은 lastone에 저장 될 것이다. 그런 다음 데이터 구조 {reference, data}를 사용하여 참조를 사용하여 변수의 이름을 완전히 부적절하게 만드는 목록을 신속하게 확장 할 수 있습니다.임의의 이름을 가진 함수 내에서 클래스 와이드 변수를 어떻게 정의합니까?

중요한 질문은, 클래스 이름을 가진 함수 내에서 클래스 와이드 변수를 어떻게 정확하게 정의 할 수 있습니까?

보조 질문 :이 작업을 수행하기 위해이 클래스의 모든 항목에 대해 특정 형식을 실제로 정의하지 않아도되므로 전체 유형에 대해 처리되는 템플릿에 내 자신의 형식을 어떻게 만들지를 깨달았습니다. 전체 수업.

class PycList { 
public: 
    void addElement(int j); 
    void defineClassVariable(int j); 
private: 
    int& lastone; 

}; 
void PycList::addElement(int j) { 

} 
void PycList::defineClassVariable(int j) { 
    //create code that will make a class wide variable with a useless name 
} 
+0

왜 지구상에서 그런 일을하고 싶습니까? 벡터가 왜 나쁜가요? 성취하려는 것은 무엇입니까? (당신의 질문은 템플릿 검색으로 대답 할 수 있습니다. 아마도 StackOverflow에 대한 나쁜 질문 일 수 있습니다.) – IdeaHat

+1

"임의의 이름을 가진 함수 내에서 클래스 와이드 변수를 얼마나 정확하게 정의합니까?"이것은 X/Y 문제처럼 들립니다. 당신은 당신이 이것을 필요로하고 그것으로 무엇을하려하고 있다고 생각합니까? – Borgleader

+0

나는 관심이있었습니다 - 다른 이유나 목적이 없으며 단지해야 할 일이 있습니다. – user2464246

답변

2

클래스 자체에 멤버를 추가하는 것은 거의 불가능합니다. C++은 런타임에 구조체 나 클래스에 물건을 추가 할 수있는 언어가 아닙니다.

std::map<int, int> (변수를 정수로 저장하고 정수를 정수로 사용한다고 가정) 변수에 대한 저장소를 정의합니다.

(물론 숫자가 "가까이에"있고 0 또는 거의 0으로 시작하는 경우 std::vector<int>을 사용할 수 있습니다.)

관련 문제