I have a Seat Class and I'm trying to get my main file to access the Seat class and it's not working. Here is my code:

My seat class:

#include<iostream>
#include<iomanip>
#include<string>



class Seat{

public:
	char name;
	bool available;

	Seat(char name, bool available){
		this.name=name;
		this.available = available;
	}
	Seat(){
		name="A1";
		avaible = false;
	}

	void setName(char name){
		this.name=name;
	}

	char getName(){
		return name;
	}
}

And my main class

#include<iostream>
#include<iomanip>
#include<string>
#include<Seat>

using namespace std;

Seat A1 = new Seat("A1", true);

string input;

void main(){

	cout<<A1.getName() <<endl;
	
}

What is the filename of the first listing of code? It should probably be something like seat.h. Then you can change line 4 of the second listing to #include "seat.h" I understand what you were trying to do, but the < > signify to the compiler that you want to search a certain set of paths for the file (normally the includes folder, etc.). Here's a guide to the paths that the gcc uses in *nix http://www.mingw.org/wiki/IncludePathHOWTO. It will be different under Windows, as you can imagine.

Also, a side note, main always returns an int.

Edited 5 Years Ago by jonsca: n/a

What's the actual error message(s) from the compiler?

I note that you're using new and feeding it Seat("A1", true), which seems a bit wrong as new has no such prototype; http://www.cplusplus.com/reference/std/new/operator%20new/

What happens if you abandon using new and just try this, within your actual main function?

Seat A1 = Seat("A1", true);

Also, I don't see how this could possibly compile, as your seat class makes use of a variable named

avaible

which doesn't exist; a mis-spelling, I suspect.

Also, the variable "name" is a single character, but you are trying to load it with "A1".

Edited 5 Years Ago by Moschops: n/a

Comments
All very true, too.

What's the actual error here?

I note that you're using new and feeding it Seat("A1", true)

What happens if you abandon using new and just try this, within your actual main function?

Seat A1 = Seat("A1", true);

Also, I don't see how this could possibly compile, as your seat class makes use of a variable named

avaible

which doesn't exist; a mis-spelling, I suspect.

The net result will be essentially the same, you'll just have an instance of a Seat instead of a pointer to a Seat object.

The problem is the #include statement. The OP should have used double-quotes instead of angle brackets around the file name. As jonsca said, it changes the compliler's behavior when searching for the requested file.

Edited 5 Years Ago by Fbody: n/a

Lol, the eyes went from the header to the included headers of the main file. Good catch. There's also a "this" pointer that's being used improperly.

I think that object (once the pointer notation is added) should be reigned into main() for safekeeping.

Edited 5 Years Ago by jonsca: n/a

Fbody, that was really more of a rhetorical "why not try this" question.

The problem is the #include statement.

There is more than one problem.

This article has been dead for over six months. Start a new discussion instead.