Я создаю LinkedList на C ++. Подпись для addNode function
:
const bool LinkedList::addNode(int val, unsigned int pos = getSize());
getSize()
- это publi c non-stati c функция-член:
int getSize() const { return size; }
size
is non-stati c частная переменная-член. Однако я получаю сообщение об ошибке: a nonstatic member reference must be relative to a specific object
Как мне достичь этой функции?
Для справки, вот весь код:
#pragma once
class LinkedList {
int size = 1;
struct Node {
int ivar = 0;
Node* next = nullptr;
};
Node* rootNode = new Node();
Node* createNode(int ivar);
public:
LinkedList() = delete;
LinkedList(int val) {
rootNode->ivar = val;
}
decltype(size) getSize() const { return size; }
const bool addNode(int val, unsigned int pos = getSize());
const bool delNode(unsigned int pos);
~LinkedList() = default;
};
Некоторые другие попытки включают:
const bool addNode(int val, unsigned int pos = [=] { return getSize(); } ());
const bool addNode(int val, unsigned int pos = [=] { return this->getSize(); } ());
const bool addNode(int val, unsigned int pos = this-> getSize());
Текущее решение, которое я использую сейчас:
const bool LinkedList::addNode(int val, unsigned int pos = -1) {
pos = pos == -1 ? getSize() : pos;
//whatever
}