最近我一直在学习如何在类中创建方法,这样我只需要编写一次方法,对于我实例化的每个类,我都可以调用一个方法,它只适用于调用它的对象的变量,我知道在只使用 main.cpp 而没有头文件时如何做到这一点,但是当我使用类头文件和 cpp 时,我对如何编写这个感到困惑。
我有一个类似于我想要实现的代码示例:
#include <iostream>
using namespace::std;
class Object
{
public:
int stuff;
void manageStuff();
Object();
};
void Object::manageStuff()
{
stuff++;
}
Object::Object() : stuff(0) {}
Object object1, object2;
int main() {
for (int i = 0; i < 10; i++)
{
object1.manageStuff();
object2.manageStuff();
cout << object1.stuff << "\n";
cout << object2.stuff << "\n";
}
}
这很好用,允许我有两个 Object 实例和一个为每个实例独立工作的方法,这是我当前的项目:
main.cpp:
#include <iostream>
#include "Test.h"
using namespace std;
int main()
{
Test test;
for (int i = 0; i < 10; i++)
{
test.count(); // Here's my error "undefined reference to Test::count"
}
return 0;
}
测试.cpp
#include <iostream>
#include "Test.h"
using namespace std;
Test::Test()
{
//ctor
}
Test::~Test()
{
//dtor
}
测试.h
#include <iostream>
#ifndef TEST_H
#define TEST_H
class Test
{
public:
Test();
virtual ~Test();
void count();
int counter();
};
#endif // TEST_H
最后是 TestFunctions.h
#include <iostream>
#include "Test.h"
#ifndef TESTFUNCTIONS_H_INCLUDED
#define TESTFUNCTIONS_H_INCLUDED
void Test::count()
{
Test::counter++;
std::cout << Test::counter;
}
#endif // TESTFUNCTIONS_H_INCLUDED
我敢肯定,对于经验更丰富的程序员来说,会有一些非常明显的错误,我看起来有点厚,但任何帮助将不胜感激
谢谢!