>

내가 만든이 클래스의 동적으로 할당 된 배열을 만드는 방법을 알아 내려고 노력한 마지막 며칠. 그들 중 하나는 내가 만든 다른 수업을 포함합니다

다음은 수업입니다 :

template<typename T>
class BST // a binary search tree class
{
private:
    Node<T> * root;
    int size;
public:
    BST()
    {
        root = NULL;
        size = 0;
    }
/*void * BST::operator new[](size_t a) //tried it both with the "BST::" and without
    {
        void * p = malloc(a);//24
        return p;
    }*/
//there are more functions that i cut out
}

그리고

template <typename T>
class Node //a node for a binary search tree
{
public:
    int key;
    T data;
    Node * left;
    Node * right;
    Node * parent;
//public:
    Node<T>()
    {
        key = NULL;
        data = NULL;
        left = NULL;
        right = NULL;
        parent = NULL;
    }
//more stuff below this but it's just getting and setting the data
}

main()

 나는 BST 의 배열을 만들려고합니다  이 줄이있는 개체 :

BST<char> * t = new BST<char>[ n ]; //the user will give the value for int n

문제는 단지 하나의 BST 를 만드는 것입니다  실행할 때 객체. 나는 약간의 연구를 수행하고 전혀 수행하지 않은 new [] 연산자를 오버로드하는 실험을했습니다.

누군가가 올바른 방법이 무엇인지 설명해 주시겠습니까?


  • 답변 # 1

    배열에 하나 이상의 객체가 있지만 t  배열이 아닙니다.

    t  oneBST에 대한 포인터이며 디버거가이를 표시합니다. 디버거는 배열의 첫 번째 요소에 대한 포인터인지 전혀 모릅니다.

    배열로 보려면 디버거에 지시해야합니다.
    "Watch"창에서이 작업을 수행하면 구문이 t,2 가 될 것입니다.  처음 두 요소를 표시합니다.

관련 자료

  • 이전 android - onEndOfSpeech가 호출 된 후 SpeechRecognizer가 시작될 때 왜 통화 중입니까?
  • 다음 OSGi 모듈 httpclient-osgi-453jar 시작시 Liferay SAXException