Implementing Class into main help please!

I'm desperately trying to figure out how to properly use setacc function,
and also how to reference the speed variable into setacc and setbrake functions. I'm not sure if I did it correctly
im so confused can you guys please help
ive read my CS book an insurmountable amount of times and it does not directly answer my question. I've been stuck on this for days. I get everything else, except that, and is there anyway I can clean up my first object parameters, or does it look about right

when compiling it gives me these errors:
G:\Program4.cpp In function `int main()':
45 G:\Program4.cpp `speed' undeclared (first use this function)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
#include<iostream>
#include <string>
using namespace std;


class Car{
private: int year,speed;
		 string make;

public: Car(int, string, int);
		Car(){}
		void setbrake(int&);
		void setacc(int&);
		
};


Car::Car(int year, string make, int speed = 0)
{ 
	cout << "Enter your car's year." << endl;
	cin >> year;
	cout << "Enter your car's make. " << endl;
	cin >> make;
	cin.ignore();
	speed = 0; }

void Car::setbrake(int &speed){
		speed = speed - 5;
		cout << "Your " << make << " is traveling at " << speed;
		cout << " MPH.";}

void Car::setacc(int &speed){
		speed = speed + 5;
		cout << "Your " << make << " is traveling at " << speed;
		cout << " MPH.";}




int main()
{
	Car car1(0,"s");
    car1.setacc(speed);
    
    
    
	system("pause");
	return 0;
}
Last edited on
You are using name speed in the call

car1.setacc(speed);

but this name was not declared.
How do I declare it properly?
I've also tried just putting an int such as 0
If it is you who wrote the code then you should understand what you are doing. Otherwise ask the question who wrote this bad code.
Last edited on
Write a class named Car that has the following member variables:
• year. An int that holds the car’s model year.
• make. A string that holds the make of the car.
• speed. An int that holds the car’s current speed.
In addition, the class should have the following member functions.
• Constructor. The constructor should accept the car’s year and make as arguments
and assign these values to the object’s year and make member variables. The constructor
should initialize the speed member variable to 0.
• Accessors. Appropriate accessor functions should be created to allow values to be
retrieved from an object’s year, make, and speed member variables.
• accelerate. The accelerate function should add 5 to the speed member variable
each time it is called.
• brake. The brake function should subtract 5 from the speed member variable each
time it is called.
Demonstrate the class in a program that creates a Car object, and then calls the accelerate
function five times. After each call to the accelerate function, get the current speed of the
car and display it. Then, call the brake function five times. After each call to the brake
function, get the current speed of the car and display it.
those were the directions and thats what im trying to do, but im having trouble using the two function i created, could anyone tell me exactly what i did wrong.
• accelerate. The accelerate function should add 5 to the speed member variable each time it is called.


1
2
3
4
5
6
void Car::Accelerate()
{
   const int acceleration = 5;

   speed += acceleration;
}


It would be even better to write

1
2
3
4
5
6
7
8
9
class Car
{
private:
   static const int acceleration = 5;
// other members
public:
   void Accelerate() { speed += acceleration; }
// other functions
};
Last edited on
thanks, that cleared it up for me a bit
The same way you can do the task

• brake. The brake function should subtract 5 from the speed member variable each time it is called.
The same way you can do the task

• brake. The brake function should subtract 5 from the speed member variable each time it is called.


After that you should do the task

• Accessors. Appropriate accessor functions should be created to allow values to be retrieved from an object’s year, make, and speed member variables.


that to display the current speed.
thanks man. I really appreciate it.
Topic archived. No new replies allowed.