클래스 인스턴스 목록을 자동으로 유지하는 방법은 무엇입니까?

끝없는

내 C ++ 프로젝트에는 Engine클래스와 Object클래스가 있습니다.

내 문제는 내 인스턴스 Object가 생성되는 방식에 있습니다. 현재 이것은 클래스 CreateObject(parameters)함수를 사용하여 수행됩니다 Engine. 이것은의 새로운 인스턴스 추가 Objectstd::vectorObject인스턴스를.

나는 인스턴스의 목록을 유지하려면 Object내에서 Engine수업을하지만, 필요없이 CreateObject(parameters)작동합니다. 그 이유는 상속 할 수 Object있지만 여전히이 목록에 추가 할 수있는 새 클래스를 만들 수 있기 때문입니다 . 이 목록의 이유는 (에서 Engine) Object생성 된 모든 인스턴스를 반복 할 수 있기 때문 입니다.

이것은 궁극적으로 내가 만드는 것이 의미 할 것 Object같은 뭔가 인스턴스 Object newObject = Object(parameters);만, 여전히이 Engine클래스는 모든 목록을 유지 관리 Object할 필요없이, 인스턴스 Object의 인스턴스를 참조하는 Engine인스턴스에로 (또는이 목록에 자신을 추가 할 목록을 Object해야 목록에 대해 알지 못함). 할 수 있습니까?

코디 코드 몽키

Engine 클래스에서 정적 컬렉션 데이터 멤버를 정의하고 Object 생성자 및 소멸자에서 업데이트 할 수 있습니다.

class Engine
{
    friend class Object;
...
public:
    static std::set< Object* > m_instances;
};

class Object
{
public:
    Object();
    virtual ~Object();
    ...
};

생성자에서 증가시키고 소멸자에서 감소시킵니다.

Object::Object()
{
    Engine::m_instances.insert(this);
}

Object::~Object()
{
    Engine::m_instances.erase(this);
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

주석을 사용하지 않고 동적으로 인스턴스화 된 클래스의 유형을 추론하는 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 EnvironmentObject의 값을 클래스 인스턴스로 전달하는 방법은 무엇입니까?

분류에서Dev

클래스 목록을 반복하고 일반 유형으로 사용하는 방법은 무엇입니까?

분류에서Dev

유형을 해당 인터페이스의 인스턴스가 아닌 인터페이스의 클래스로 제한하는 방법은 무엇입니까?

분류에서Dev

Django 모델 인스턴스 목록을 JSON으로 반환하는 방법은 무엇입니까?

분류에서Dev

Python : 메타 클래스로 인스턴스 속성을 만드는 방법은 무엇입니까?

분류에서Dev

파이썬 클래스 객체 목록을 클래스로 상속하는 방법은 무엇입니까?

분류에서Dev

문자열 목록을 케이스 클래스로 변환하는 방법은 무엇입니까?

분류에서Dev

'공개'클래스 목록을 디자인하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 목록 클래스를 json으로 변환하는 방법은 무엇입니까?

분류에서Dev

Dart-개체 목록을 개인 클래스 멤버로 초기화하는 방법은 무엇입니까?

분류에서Dev

클래스 이름과 동일한 메서드 이름이있을 때 중첩 된 클래스를 인스턴스화하는 방법은 무엇입니까?

분류에서Dev

계약 계층 구조를 기반으로 서비스 클래스에 대한 연관을 인스턴스화하는 방법은 무엇입니까?

분류에서Dev

케이스 클래스 데이터 목록을 문자열 데이터 목록으로 변환하는 방법은 무엇입니까?

분류에서Dev

클래스 유형을 동적으로 인스턴스화하는 방법이 있습니까?

분류에서Dev

TS 클래스 인스턴스 외부에 컨텍스트 유형을 갖는 방법은 무엇입니까?

분류에서Dev

인터페이스를 구현하는 기본 클래스에서 파생 된 인스턴스 목록을 만드는 방법은 무엇입니까?

분류에서Dev

키를 기반으로 클래스의 인스턴스를 반환하는 방법은 무엇입니까?

분류에서Dev

부분 클래스 이름으로 요소 목록을 얻는 방법은 무엇입니까?

분류에서Dev

커스텀 클래스 인스턴스의 python collections.deque로 작업하는 방법은 무엇입니까?

분류에서Dev

다형성 함수에서 자식 클래스 인스턴스 대신 부모 클래스 인스턴스를 전달하는 방법은 무엇입니까?

분류에서Dev

Ruby 클래스 인스턴스 변수를 다른 클래스의 새 인스턴스로 초기화하는 방법은 무엇입니까?

분류에서Dev

문자 클래스를 포함하는 glob 패턴을 인라인으로 확장하는 방법은 무엇입니까?

분류에서Dev

RSpec으로 클래스 인스턴스를 두 배로 늘리는 올바른 방법은 무엇입니까?

분류에서Dev

Python 목록을 sympy Add 클래스로 변환하는 방법은 무엇입니까?

분류에서Dev

클래스 목록을 Ajax 사후 호출 MVC 모델로 전달하는 방법은 무엇입니까?

분류에서Dev

qmlRegisterType을 수행 한 후 유효한 클래스 인스턴스를 얻는 방법은 무엇입니까?

분류에서Dev

클래스 유형을 한 번만 동적으로 컴파일하는 방법은 무엇입니까?

분류에서Dev

서로 의존하는 클래스를 인스턴스화하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    주석을 사용하지 않고 동적으로 인스턴스화 된 클래스의 유형을 추론하는 방법은 무엇입니까?

  2. 2

    SwiftUI에서 EnvironmentObject의 값을 클래스 인스턴스로 전달하는 방법은 무엇입니까?

  3. 3

    클래스 목록을 반복하고 일반 유형으로 사용하는 방법은 무엇입니까?

  4. 4

    유형을 해당 인터페이스의 인스턴스가 아닌 인터페이스의 클래스로 제한하는 방법은 무엇입니까?

  5. 5

    Django 모델 인스턴스 목록을 JSON으로 반환하는 방법은 무엇입니까?

  6. 6

    Python : 메타 클래스로 인스턴스 속성을 만드는 방법은 무엇입니까?

  7. 7

    파이썬 클래스 객체 목록을 클래스로 상속하는 방법은 무엇입니까?

  8. 8

    문자열 목록을 케이스 클래스로 변환하는 방법은 무엇입니까?

  9. 9

    '공개'클래스 목록을 디자인하는 방법은 무엇입니까?

  10. 10

    사용자 지정 목록 클래스를 json으로 변환하는 방법은 무엇입니까?

  11. 11

    Dart-개체 목록을 개인 클래스 멤버로 초기화하는 방법은 무엇입니까?

  12. 12

    클래스 이름과 동일한 메서드 이름이있을 때 중첩 된 클래스를 인스턴스화하는 방법은 무엇입니까?

  13. 13

    계약 계층 구조를 기반으로 서비스 클래스에 대한 연관을 인스턴스화하는 방법은 무엇입니까?

  14. 14

    케이스 클래스 데이터 목록을 문자열 데이터 목록으로 변환하는 방법은 무엇입니까?

  15. 15

    클래스 유형을 동적으로 인스턴스화하는 방법이 있습니까?

  16. 16

    TS 클래스 인스턴스 외부에 컨텍스트 유형을 갖는 방법은 무엇입니까?

  17. 17

    인터페이스를 구현하는 기본 클래스에서 파생 된 인스턴스 목록을 만드는 방법은 무엇입니까?

  18. 18

    키를 기반으로 클래스의 인스턴스를 반환하는 방법은 무엇입니까?

  19. 19

    부분 클래스 이름으로 요소 목록을 얻는 방법은 무엇입니까?

  20. 20

    커스텀 클래스 인스턴스의 python collections.deque로 작업하는 방법은 무엇입니까?

  21. 21

    다형성 함수에서 자식 클래스 인스턴스 대신 부모 클래스 인스턴스를 전달하는 방법은 무엇입니까?

  22. 22

    Ruby 클래스 인스턴스 변수를 다른 클래스의 새 인스턴스로 초기화하는 방법은 무엇입니까?

  23. 23

    문자 클래스를 포함하는 glob 패턴을 인라인으로 확장하는 방법은 무엇입니까?

  24. 24

    RSpec으로 클래스 인스턴스를 두 배로 늘리는 올바른 방법은 무엇입니까?

  25. 25

    Python 목록을 sympy Add 클래스로 변환하는 방법은 무엇입니까?

  26. 26

    클래스 목록을 Ajax 사후 호출 MVC 모델로 전달하는 방법은 무엇입니까?

  27. 27

    qmlRegisterType을 수행 한 후 유효한 클래스 인스턴스를 얻는 방법은 무엇입니까?

  28. 28

    클래스 유형을 한 번만 동적으로 컴파일하는 방법은 무엇입니까?

  29. 29

    서로 의존하는 클래스를 인스턴스화하는 방법은 무엇입니까?

뜨겁다태그

보관