• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

Brian Jones

Instantiating a class

6 posts in this topic

Could someone please explain what instantiating a class, and what an instance of a class means? Im not really sure what it means. Somebody said that if you have a class called Bus, and you create an object Bus driver; you are instantiating class Bus. And by instantiating the class, you are allocating memory for all the data members in that are in class Bus. Im not really sure what that means. He also said that "driver is an instance of class Bus." <--- I definently do know what that means Thank you. Only???
0

Share this post


Link to post
Share on other sites
Ok... the word ''Bus'' is a concept... embodying a large vehicle, numerous seats, or whatever. Now, see the thing driving down the road full of people? That is an instance of a Bus. An instance is a physical representation of a concept. There can be any number of instances of that concept.

In code terms:

  
// This is the Bus concept, embodied as a class

class Bus
{
int number_of_seats;
int colour;
int driver;
};

// Now we make an instance of a Bus, called bus1;

Bus bus1;
// And another one, called bus2;

Bus bus2;

Note that your original example was incorrect: it doesn''t make sense for driver to be an instance of Bus. Driver is perhaps part of a Bus, but an instance of a Bus is a Bus. With me?

To ''instantiate'' is to ''create an instance''. So, the line "Bus bus1" instantiated a ''Bus'' object called ''bus1''. Just like the line ''int xyz'' instantiates an ''int'' object called ''xyz''.

Is that any help?
0

Share this post


Link to post
Share on other sites
It''s quite simple. First you have to create your class :

class bus
{
protected:
const char *driver;
unsigned long seats;
unsigned long capacity;

public:
int showdrivername();
};

But, VC++ can''t use a class in this way, you must create an instance of it. That means the compiler will allocate as for a variable memory to stock the all the data of the class.
In this case, it will allocate memory for the 3 variables (driver, seats, capacity) and for the procedure showdrivername();

You create an instance of a class this way:
for ex: bus *mybus;

This way with your variable mybus, you can use all data members of the class. Ex: mybus->capacity=50;

The class structure is very cool if you have several same objects of the same type. In this case you can have for example 3 buses and assign different value for each one.

Ex:
bus *mybus1;
bus *mybus2;
bus *mybus3;

mybus1->capacity = 100;
mybus2->capacity = 150;
mybus3->capacity = 200;


This is what we call instancing;

hope I was of any help !
0

Share this post


Link to post
Share on other sites
(Post removed because other people were faster than I and explained better). Phew... guys, you're fast.

Gaiomard Dragon
-===(UDIC)===-

Edited by - Outworlder on July 1, 2001 3:36:31 PM
0

Share this post


Link to post
Share on other sites

quote:
Original post by Pixelisator

Ex:
bus *mybus1;
bus *mybus2;
bus *mybus3;

mybus1->capacity = 100;
mybus2->capacity = 150;
mybus3->capacity = 200;




Shouldn''t that be:

bus *mybus1 = new bus;
bus *mybus2 = new bus;
bus *mybus2 = new bus;

0

Share this post


Link to post
Share on other sites
Yes, ya''ll are fast. I think I get it. So what you guys are saying, is that instantiating a class is CREATING an object that has access to all public members of that class. And that the compiler will allocate all the memory for all the variables in the class to the object that was created. Is that correct?

Also, why would mybus1, mybus2, mybus3 need to be on the heap?
0

Share this post


Link to post
Share on other sites
No, instantiating a class has access to all the members of the class. Otherwise there''d be no point to protected and private members. It''s other classes that can''t access the protected and private members.

As for the heap issue, well Pixelisator accidentally confused matters by declaring pointers to Buses instead of actual Buses. When you declare a pointer, you generally then have to create the actual object on the heap. But there is no reason you can''t just have a class on the stack.
0

Share this post


Link to post
Share on other sites