オブジェクトを(私の場合はSnack
オブジェクト)オーバーロードされたコンストラクタに渡す方法は?指示に従ってオーバーロードコンストラクタにオブジェクトを渡すにはどうすればよいですか? C++
: - Snack
、及びスロットに現在あることSnac
kの量
これは、2人のデータメンバーを有するべきです。
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;
}
を実装することができます?デフォルトのコンストラクタから??? –
いいえ私はそれをオーバーロードコンストラクタに渡すことを望んでいましたが、デフォルトのコンストラクタはすでに次の '\t Snack snackItem; \t numOfSnacks = 5; ' – Timk10
もっとコードを見る必要があります - [mcve]が大いに役立つでしょう。たとえば、 'VendSlot'クラスに' Snack'メンバ変数がないように見えるので、 'Snack snackObjects = snacks;'は何も役に立ちません。 –