我將如何去傳遞一個對象(在我的例子中是Snack
對象)到一個重載的構造函數?如何將對象傳遞給重載構造函數? C++
每所述指令:
它應具有兩個數據成員 - 一個
Snack
,而且Snac
ķ當前在所述狹槽的量。
我該如何着手將零食物品傳遞給我的構造函數VendSlot
?
VendSlot::VendSlot() //default constructor
{
Snack snackItem;
numOfSnacks = 5;
}
VendSlot::VendSlot(Snack snacks, int quantity) //overloaded constructor
{
Snack snackObjects = snacks;
numOfSnacks = quantity;
}
這裏是我的getSnack()
功能:我怎麼使用get函數的對象?
int VendSlot::getSnack()
{
return snacks; //I have no idea how to call the snack object through here?
}
EDIT2我這些作品的代碼更新,但現在這些正確嗎?
public:
VendSlot(); //default constructor
Snack snacks; //instantiate Snack object
VendSlot(Snack the_snacks, int quantity);
Snack getSnack(); //return snack
int getAmount(); //get amount of snacks available
void decrementAmount(int); //function to decrease storage in vending machine by 1.
~VendSlot(); //destructor
private:
Snack snack; //passes snack object
int numOfSnacks; // number of snacks
{
Snack snackItem;
numOfSnacks = 5;
}
VendSlot::VendSlot(Snack the_snacks, int quantity) //overload constructor
{
snacks = the_snacks;
numOfSnacks = quantity;
}
int VendSlot::getAmount()
{
return numOfSnacks;
}
這是需要的主要功能 - 有很多其他項目,但我覺得上面是我的問題的一部分。
#include <iostream>
#include <string>
#include "Snack.h"
#include "VendSlot.h"
#include "miniVend.h"
using std::cout;
using std::cin;
using std::string;
using std::endl;
int main()
{
Snack s1("corn chips", 0.75, 200);
Snack s2("candy bar", 1.25, 300);
Snack s3("root beer", 2.00, 450);
VendSlot vs1(s1, 2);
VendSlot vs2(s2, 1);
VendSlot vs3(s3, 0);
VendSlot vs4; // five bottles of water
miniVend machine(vs1, vs2, vs3, vs4, 0);
cout << machine.numEmptySlots() << endl;
cout << machine.valueOfSnacks() << endl;
cout << machine.getMoney() << endl;
// machine.buySnack(1);
cout << machine.numEmptySlots() << endl;
cout << machine.valueOfSnacks() << endl;
cout << machine.getMoney() << endl;
return 0;
}
從那裏路過那個小吃對象到我的構造函數VendSlot?從默認的構造函數? –
不,我希望通過它的重載構造函數,默認的構造函數已經採取了以下'\t小吃snackItem; \t numOfSnacks = 5; ' – Timk10
我們需要看到更多的代碼 - [mcve]會有很大的幫助。例如,您的'VendSlot'類中似乎沒有'Snack'成員變量,因此'Snack snackObjects = snack;'沒有任何用處。 –