我是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();
^~~~~~~
答案 0 :(得分:4)
getInfo()
不是免费功能。它是类Node
的成员函数。因此,需要使用作用域解析运算符(例如::
:
int Node::getInfo()
{
// ... body ...
}
并且,在您的main
函数中,需要在使用类的成员函数之前创建该类的对象。
例如:
int main()
{
Node node;
node.getInfo();
return 0;
}
最好在编写代码之前修改OOP概念及其在C ++中的实现方式。自由函数和成员函数是不同的东西。读一本合适的书(或教程等)将帮助您为编写OOP代码奠定基础。祝你好运!