VisualStudio没有';t接受类实现[C+;+;] 我试图在学习C++的时候从DEV C++到VisualStudio(因为我必须与后者一起工作),但是出于某种原因,在DeVC++中完全工作的一个相当简单的类实现在VisualStudio.中创建了一长串错误。
这些文件很简单:VisualStudio没有';t接受类实现[C+;+;] 我试图在学习C++的时候从DEV C++到VisualStudio(因为我必须与后者一起工作),但是出于某种原因,在DeVC++中完全工作的一个相当简单的类实现在VisualStudio.中创建了一长串错误。,c++,class,visual-studio-2015,C++,Class,Visual Studio 2015,这些文件很简单: 头文件,用于声明构造函数、变量等 cpp文件,用于实现上述构造函数、函数等 控制台应用程序文件(在visual studio上),以生成“main()”函数 股票2.h #ifndef STOCK2_H_ #define STOCK2_H_ class Stock { public: Stock(); Stock(const char* co, int n = 0, double pr = 0.0); ~Stock(); void show(
- 头文件,用于声明构造函数、变量等
- cpp文件,用于实现上述构造函数、函数等
- 控制台应用程序文件(在visual studio上),以生成“main()”函数
#ifndef STOCK2_H_
#define STOCK2_H_
class Stock
{
public:
Stock();
Stock(const char* co, int n = 0, double pr = 0.0);
~Stock();
void show()const;
private:
std::string company;
int shares;
double share_val;
double total_val;
};
#endif
stock2.cpp
#include "stdafx.h"
#include <iostream>
#include <string>
#include "stock2.h"
Stock::Stock() //default constructor
{
//code
}
Stock::Stock(const char* co, int n, double pr)
{
//code
}
Stock::~Stock()
{
std::cout << "Stock object has been destroyed" << std::endl;
}
//Methods
void Stock::show() const
{
//code
}
#包括“stdafx.h”
#包括
#包括
#包括“stock2.h”
Stock::Stock()//默认构造函数
{
//代码
}
股票:股票(常量字符*co,整数n,双pr)
{
//代码
}
股票::~Stock()
{
std::cout您在控制台应用程序.cpp
中包含了stock2.cpp
。这意味着stock2.cpp
中的所有代码现在都编译了两次,链接器会显示错误消息
Error LNK2005 "public: void __thiscall Stock::<...> already defined
与
如果在执行此操作时遇到另一个错误,请为此发布错误消息。如前所述,仅包括头文件。如果项目文件中包含了实现文件,则应自动编译并链接它们。在Visual Studio中,请确保所有源文件都列在解决方案资源管理器视图中。您可以如果缺少,可以将拖放文件拖到该视图中,以将其添加到项目中。请阅读消息并尝试对其进行分析。您的应用程序中包含了ConsoleApplication1.obj
。它来自何处?您是否已将stock2.h和stock2.cpp添加到项目中?您应该在解决方案资源管理器窗口中同时看到它们。@kn0bbulo Re将所有包含项移动到.cpp文件并重新编译项目(Ctrl+Alt+F7)。它是#包含“stock2.h”
而不是#包含“stock2.cpp”
Error LNK2005 "public: void __thiscall Stock::<...> already defined
#include "stock2.cpp"
#include "stock2.h"