因此,我已经在StackOverflow上进行了广泛的搜索和搜索,尽管对此确切问题有多个答案,但仍无法找到解决方案。
我正在尝试在名为Fpc5.cpp
的外部文件中创建测试类
它的内容是:Fpc5.cpp
#include "stdafx.h"
#include "Fpc5.h";
#include <iostream>
using std::cout;
class Fpc5 {
int bar;
public:
void testMethod();
};
void Fpc5::testMethod() {
cout << "Hey it worked! ";
}
和我的主要.cpp文件:
Test.cpp
// Test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream"
//#include "Fpc5.cpp"
#include "Fpc5.h";
using std::cout;
using std::cin;
using std::endl;
int main()
{
cout << "Hello" << endl;
Fpc5 testObj;
testObj.testMethod();
system("pause");
return 0;
}
我读过的所有答案都表明这是由于我以前将类包括在主文件本身中而造成的,这就是为什么我创建了头文件的原因
Fpc5.h
#pragma once
void testMethod();
这更改了错误,但仍然无法解决问题。目前,我的
Test.cpp
无法识别Fpc5类。我也尝试在Fpc5.cpp
中添加Fpc5.h
和stdafx.h
,但这仍然无法解决问题。stdafx.h
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
//#include "Fpc5.cpp"
#include "Fpc5.h"
我确定这是一个简单的语法/概念理解错误,但是我对C++还是很陌生,不知道出什么问题了。
最佳答案
这是您的类的定义,必须在Fpc5.h中
class Fpc5 {
int bar;
public:
void testMethod();
};
然后,您在其中实现类的方法的Fpc5.cpp:
#include "Fpc5.h" // Compiler needs class definition to compile this file!
void Fpc5::testMethod()
{
}
然后可以在Test.cpp中使用Fpc5类
#include "Fpc5.h"
int main()
{
Fpc5 foo;
foo.testMethod();
return 0;
}
或者,您可以将所有内容打包到Test.cpp中