Кто-нибудь сталкивался с этим раньше и нашел исправление? или я что то не так делаю? Если я пытаюсь получить доступ к головным или хвостовым узлам во внешнем классе, 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->
, подсказка в левом нижнем углу говорит, что intellisense недоступен
1 ответ
Члены class
по умолчанию закрыты. Чтобы сделать их доступными, используйте ключевое слово public
.
class X
{
public:
X() {}
~X() {}
// rest of the public stuff
private:
// private stuff
};
Внутренний класс имеет полный доступ к закрытым членам внешнего класса, а не наоборот.
Не обращайте слишком много внимания на то, что говорит intellisense; это часто бывает полезно, но иногда ошибочно. Компилятор написан лучшими программистами Microsoft, поэтому попробуйте, если то, что вы написали, компилируется.
Похожие вопросы
Новые вопросы
c++
C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который должен быть) скомпилирован с помощью компилятора C ++. Используйте тег для конкретной версии для вопросов, связанных с конкретной версией стандарта [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] или [C ++ 23] и т. Д. .
public
без двоеточия иthis->
, а затем отредактируйте свое сообщение, чтобы я мог видеть, что у вас есть.