我对 C++ 很陌生,所以关于这个主题的其他帖子对我来说有点太技术性了。当我尝试编译我的代码时,我得到一个未解决的外部符号错误。
这是我的 .h 文件:
#pragma once
#include <string>
using namespace std;
class Item
{
private:
string description;
double price;
int weight;
int quantity;
public:
Item(void);
~Item(void);
Item(double OrderPrice, int OrderWeight, string Description);
void setOrderPrice(double amount);
void setOrderWeight(int ounces);
void setDescription(string desc);
void setQuantity(int number);
int getOrderPrice();
int getOrderWeight();
string getDescription();
int getQuantity();
void show();
};
这是我的 .cpp 文件:
#include <iostream>
#include <string>
#include "Item.h"
using namespace std;
Item::Item(void)
{
}
Item::~Item(void)
{
}
void Item::setOrderPrice(double amount) {
price = amount;
}
void Item::setOrderWeight(int ounces) {
weight = ounces;
}
void Item::setDescription(string desc) {
description = desc;
}
void Item::setQuantity(int number) {
quantity = number;
}
int Item::getOrderPrice() {
return price;
}
int Item::getOrderWeight() {
return weight;
}
string Item::getDescription() {
return description;
}
int Item::getQuantity() {
return quantity;
}
void Item::show() {
cout << price << weight << description;
}
最后包含我的主要文件:
#include <iostream>
#include <string>
#include "Item.h"
using namespace std;
int main() {
double dTotalPrice = 0.0;
int iTotalWeight = 0;
Item itmMouse(24.99, 14, "Wireless Mouse");
Item itmKeyboard(22.49, 27, "USB Keyboard");
Item itmHDMI (24.99, 12, "HDMI Cable");
Item itmGlasses(7.99, 7, "Reading Glasses");
itmGlasses.setQuantity(2);
// Show the details of the order using printDetails()
cout << "Here are your shopping cart contents.\n";
itmMouse.show();
itmKeyboard.show();
itmHDMI.show();
itmGlasses.show();
// Compute the total price and total weight in this section
dTotalPrice += itmMouse.getOrderPrice();
dTotalPrice += itmKeyboard.getOrderPrice();
dTotalPrice += itmHDMI.getOrderPrice();
dTotalPrice += itmGlasses.getOrderWeight();
iTotalWeight += itmGlasses.getOrderPrice();
iTotalWeight += itmKeyboard.getOrderWeight();
iTotalWeight += itmHDMI.getOrderWeight();
iTotalWeight += itmGlasses.getOrderWeight();
// Here we show the order details
cout << "The price of your order is $ " << dTotalPrice << endl;
cout << "The shipping weight is " << iTotalWeight << " ounces\n";
cout << "That is " << iTotalWeight / 16 << " pounds\n";
return 0;
}
我得到的错误是:
error LNK2019: unresolved external symbol "public: __thiscall Item::Item(double,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0Item@@QAE@NHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main
请让我知道(尽可能以非技术性的术语)我做错了什么以及如何解决它。预先感谢您的帮助!对此,我真的非常感激!