我疯狂地试图弄清楚这个废话。我是在大学的CS 142入门计算机编程课的最后一周,到目前为止我完全没事了。我已经理解了所有的概念,并且在作业上做得非常好,但是课程和指针都在踢我的屁股。我无法绕过它们。我一直致力于最新的家庭作业,并认为我开始理解课程很好,但是每当我尝试实施或调用信息时,我都会遇到疯狂的错误。我不知道该怎么做。任何人都可以帮助我解释事情而不会变得非常疯狂吗?
这项任务是编写一个程序,用于跟踪汽车经销商的库存情况。这位教授提供了一个名为" Car"我们将在代码中实现,以跟踪每辆汽车的品牌,颜色和价格,以及具有成员功能,允许您绘制不同颜色的汽车,并打印出当前库存的列表。问题是Car类所需的所有输入都没有用于添加数据的成员函数。我搜索过并搜索过,我发现的所有解决方案都包含了向对象添加数据的成员函数,但是我的教授包含了类(我们必须使用并禁止修改)没有这样的成员函数。所以我不知道如何将数据导入对象。这是整个Car.h和Car.cpp:
Car.h
//WARNING: It is expressly forbidden to modify any part of this document, including its name.
#pragma once
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Car
{
private:
string name;
string color;
double price;
public:
/*
* Constructor/Destructor
*
* Handles creation and deletion of Car objects.
*
* Parameter: name_in
* The name of a new car
* Parameter: color_in
* The color of a new car
* Parameter: price_in
* The price of a new car
*/
Car(string name_in, string color_in, double price_in);
virtual ~Car();
string getName();
string getColor();
double getPrice();
void paint(string new_color);
string toString();
};
Car.cpp
//WARNING: It is expressly forbidden to modify any part of this document, including its name
#include "Car.h"
using namespace std;
Car::Car(string name_in, string color_in, double price_in)
{
name = name_in;
color = color_in;
price = price_in;
}
Car::~Car(){}
string Car::getName()
{
return name;
}
string Car::getColor()
{
return color;
}
double Car::getPrice()
{
return price;
}
void Car::paint(string new_color)
{
color = new_color;
price += 1000;
}
string Car::toString()
{
stringstream ss;
ss << "Name: " << name << endl;
ss << "Color: " << color << endl;
ss << "Price: $" << price << endl;
return ss.str();
}
所以我必须使用Car类为对象添加三个值 - 名称,颜色和价格,我必须将它们存储在Car对象的向量中,这样就可以有一个用户定义的长度列表。库存,我必须能够通过添加基于文本的新Car对象来编写和读取可以添加到矢量的.txt文件。就像我说的那样,我用Google搜索过的其他类似想法的实现都有成员函数允许添加对象中的数据,但我教授的代码却没有。我在第一次设置对象时不得不初始化它。显然,唯一的例外是汽车的颜色,可以使用paint(string new_color)函数进行更改。
我已经尝试了大量不同的方法在我自己的Main.cpp文件中设置一个汽车对象,使用我的大脑可以想到的这个学期在课堂上学到的东西。我试过像这样的东西 cars [0] =新车(&#34; Jalopy&#34;,&#34; Blue&#34;,2300); 要么 cars.push_back(Car(&#34; Camaro&#34;,&#34; Yellow&#34;,25000)); 我尝试过使用指针(但我真的不知道如何使用它们)和一切。和AAAAAAAUGGGHHH我被困住了!如何获取新的Car对象并在向量中设置它并使用名称,颜色和价格初始化对象,而不使用类成员函数为我添加数据?
P.S。教授的指示完全没用,并且说'#34;要求你使用提供的Car类(在Car.h和Car.cpp中找到)存储所有汽车信息。&#34;就课堂实施而言,这实际上是他给予我们的唯一帮助。请帮忙!
答案 0 :(得分:0)
到目前为止你有什么?
使用原始代码:
std::vector<Car> cars;
cars.push_back(Car("Camaro", "Yellow", 25000.0d))
应该准确地告诉你你想要的东西。
要在堆栈上创建汽车,您会说:
Car& myCar = Car("GTi", "Grey", 25000.0d);