Функция не объявлена ​​в области видимости / Как использовать header.h, header.cpp и main.cpp вместе? - PullRequest
0 голосов
/ 30 сентября 2018

Я полный новичок в C ++, и у меня возникают проблемы с объявлением моих функций в файле header.h, определенным в header.cpp и вызванным в main.cpp.Я искал решения, но ничего, что я делаю, похоже, не работает.Буду признателен за информацию о том, как я могу решить эти проблемы.

Вот мой код:

main.cpp

#include <iostream>
#include "DLinkedList.h"

int main() {
  getInfo(); //Running my function getInfo
}

DLinkedList.h

#ifndef DLINKEDLIST_H
#define DLINKEDLIST_H

class Node
{
  private:
      int info;

  public:
       Node* prev;
       Node* next;
       int getInfo(); //Declaring my function getInfo
       void setInfo(int value); 
};
#endif

DLinkedList.cpp

#include <iostream>
#include "DLinkedList.h"

int getInfo() { //Defining my function getInfo
  int answer;
  std::cout << "Input the integer you want to store in the node: ";
  std::cin >> answer;
  return answer;
}

и сообщение об ошибке:

exit status 1
main.cpp: In function 'int main()':
main.cpp:6:3: error: 'getInfo' was not declared in this scope
   getInfo();
   ^~~~~~~

1 Ответ

0 голосов
/ 30 сентября 2018

getInfo() не является бесплатной функцией.Это функция-член класса Node.Таким образом, он должен быть определен так же, как это предшествует имени класса, которому он принадлежит, с использованием оператора разрешения области видимости, т.е. :::

int Node::getInfo()
{
    // ... body ...
}

И в вашей функции main вам необходимо создать объектВаш класс перед использованием его функции-члена.

Например:

int main()
{
    Node node;
    node.getInfo();
    return 0;
}

Лучше пересмотреть концепции ООП и то, как они реализованы в C ++, прежде чем писать код.Свободные функции и функции-члены - это разные вещи.Изучение правильной книги (или учебника и т. Д.) Поможет вам создать основу для написания ООП-кода.Желаем удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...