// Items.h
class Items
{
public:
Items();
Items(string, string, double, int, int);
//Item setters
void setDesciption(string);
void setSku(int);
void setLocation(int);
void setSupplier(string);
void setCost(double);
//Item getters
string getDescription();
int getSku();
int getLocation();
string getSupplier();
double getCost();
private:
//Item variables
string _description;
string _supplier;
double _cost;
int _sku;
int _location;
};
//项目类中的构造函数
Items::Items(string description, string supplier, double cost, int sku, int location)
{
setDesciption(description);
setSupplier(supplier);
setCost(cost);
setSku(sku);
setLocation(location);
}
//这是添加项目类 //此函数用于通过传递它们的默认构造函数来设置items类中变量的值。 //现在我测试了在main()中调用AddOrDeleteItems函数,它运行得很好,但是当我在另一个类文件中尝试它时(比如添加项类),items.h文件中的变量从不设置,并返回其默认值。
void AddOrDeleteItems::newItem()
{
string description;
string supplier;
double cost;
int sku;
int location;
//Run checks on things like sku length, location.
cout << "Add a new product please enter the following.\n\n";
cout << "Description: ";
getline(cin, description);
cout << "\nSupplier: ";
getline(cin, supplier);
cout << "\nCost: ";
cin >> cost;
cout << "\nSku: ";
cin >> sku;
cout << "\nLocation: ";
cin >> location;
Items ItemsObj(description, supplier, cost, sku, location);
}
//Item Setters
void Items::setDescription(string x)
{
_description = x;
}
void Items::setSku(int x)
{
_sku = x;
}
void Items::setLocation(int x)
{
_location = x;
}
void Items::setSupplier(string x)
{
_supplier = x;
}
void Items::setCost(double x)
{
_cost = x;
}
//Item Getters
string Items::getDescription()
{
return _description;
}
int Items::getSku()
{
return _sku;
}
int Items::getLocation()
{
return _location;
}
string Items::getSupplier()
{
return _supplier;
}
double Items::getCost()
{
return _cost;
}
答案 0 :(得分:1)
在<?php require_once ('../template/header.phtml')?>
结束时,您执行AddOrDeleteItems::newItem()
,因此您将Items ItemsObj(description, supplier, cost, sku, location);
的实例声明为函数堆栈中的局部变量,然后继续从那个功能,完全忘记了这个局部变量曾经存在过。所以,你并没有真正创建Items
的任何新实例。也许你的意思是:
Items
另外:那个东西应该被称为“Item”,而不是“Items”。
另外:一个名为“AddOrDeleteItems”的类被歪曲为一个概念,它的名字让我感到恶心。