0

有没有人遇到过这种情况并找到了解决方法?还是我做错了什么?如果我尝试访问外部类 intellisense 中的头节点或尾节点,则表示它们没有成员。对不起,如果它有点乱,我已经解决了一段时间了。

编辑:我尝试过使用 MS VS 2010 和 2012

#pragma once

#include <string>
using namespace std;

template <typename ItemType>
class LinkedArrayList
{
public:
    /*************************************
            Inner Class
    *************************************/
    class Node 
    {
    public:
        Node(void){};
        Node(Node* pNode, Node* nNode, int limit)
        {
            prevNode = pNode;
            nextNode = nNode;
            capacity = limit;
            size = 0;

            if(capacity != 0)
                items = new ItemType[capacity];
        };
        ~Node(void)
        { 
            delete(items);
        };
        Node* nextNode;
        Node* prevNode;
        ItemType* items;
        int size;
        int capacity;
    private:
    };

    /*************************************
            Declarations
    *************************************/
    int numOfNodes;
    int arrayCapacity;
    Node* head;
    Node* tail;

    /*************************************
            Functions
    *************************************/

    LinkedArrayList(void)
    {
    };
    LinkedArrayList(int capacity)
    {
        head = new Node(NULL, NULL, 0);
        tail = new Node(NULL, NULL, 0);
        arrayCapacity = capacity;
        numOfNodes = 0;
    };

    ~LinkedArrayList(void)
    {
    };

当我尝试输入head->tail->左下角的提示显示智能感知没有可用成员时

4

1 回答 1

0

默认情况下,a 的成员class是私有的。要使它们易于访问,请使用关键字public

class X
{
public:
    X() {}
    ~X() {}
    // rest of the public stuff
private:
    // private stuff
};

内部类可以完全访问外部类的私有成员,而不是其他方式。

不要太在意智能感知所说的内容;它通常很有帮助,但有时是错误的。编译器是由微软的更好的程序员编写的,所以如果你写的东西可以编译,请尝试一下。

于 2013-03-16T23:39:29.867 回答