2

Xcode 3 から 4.3 に移行して以来、デバッガーで、リンク リストなどのネストされたテンプレート クラスのメンバー変数を表示できませんでした。どうやって見るかについて考えている人はいますか?以下に例を示します。その後に、デバッガーの「変数」ウィンドウで表示できるものと表示できないものを示します。

template<class T> class linkedList;
template<class T> class listItem;

template<class T> class listItem {
public:
    T data;
    listItem<T> *previous, *next;

listItem(T x):data(x), previous(0), next(0){}
};


template<class T> class linkedList{
  public:
int length;
listItem<T> *first,*last;

linkedList(void): first(0), last(0), length(0) {}
~linkedList(void){Clear();}
void Append(T x);
void Clear(void){
            while(length>0) DeleteLast();}
void DeleteLast(void);
};

template<class T> void linkedList<T>::Append (T x) {
    listItem<T> *item = new listItem<T>(x);
    if (length == 0) {first = item;}
        else {  
    item->previous = last;
    last->next = item;}
    item->next = NULL;  
    last = item; 
    length++;
}//Append


template<class T> void linkedList<T>::DeleteLast (void) {
    if (length > 0) {
        listItem<T> *item = last;
    if (length == 1) {
    first = last = NULL;
    length = 0;
    delete item; item = NULL;
    return;}
    else if (length == 2) {
    last = item->previous;
    last->next = NULL;
    first = last;}
    else {
    item->previous->next = NULL;
    last = item->previous;}
    length--;
    delete item;item=NULL;
    }
}//DeleteLast

int main(){
    linkedList<int> theList;
    theList.Append(4);
    theList.Append(5);

return 0;
}

変数ウィンドウをステップスルーして見ると、次のようになります。

theList= (linkedList<int>)
   length= (int) 2
   first= (listItem*) 0x0000000100100a80
   last= (listItem*) 0x0000000100100aa0

私が見たいのは、項目「最初」と「最後」のアドレスだけではなく、それらの参照解除された内容、整数 4 と 5 です。この情報は Xcode 3 で表示されました。

何かご意見は?

4

0 に答える 0