Hi friends..i have doubt about C++ programming. How to give names for the elemetns in an array of objects...

10 Years
Discussion Span
Last Post by vijayan121

Why dont you post the code with the array or where u are experiencing difficulties then we'll take it from there


In my project work i need to create a cubical box and have to place particular number of atoms randomly in the box. For that purpose i have created an array of atom objects. I want to give names for each atom object for their identity...

#include <iostream>
using namespace std;

//Defining two classes..one for silicon(Si) atoms and another one for Oxigen(O2) atoms...
 const int m=100; //numbr of silicon atoms...
 const int n=200;  //number of oxygen atoms...

class Silicon
         int  a;
         float covalent_radius;

//end of the silicon class

class oxygen
         int  a;
         float covalent_radius;

//end of the oxygen class

class Box
private: float  depth,length,width:

         float x,y,z //these are three axes with respect to the dimensions of the box.

public: Box(float d, float l, float w )


x=y=z=d; //because all three dimensions are equal..
}//end of the box class

int main()
  float covalent-bondlength;

  silicon si[m]; //array of M number of silicon atoms
  oxygen o2[n];  //array of N number of oxygen atoms

  Box cube(1.0,1.0,1.0);  //Cubic box with the given dimensions  
  return 0;

Edited by mike_2000_17: Fixed formatting


well you cant really name the elements of an array, they need to be accessed using the subscript.However to identify each object you can add a unique field in the class and set it for each object. Then when you fetch the object just check for that value to identify it. Or else use a map, so you can add a key for each object stored and then fetch it based on the key.

  1. you could have name as a non-static member in the class. this can be used to give a name to each object.
  2. you could use an enum or a variable to give a name (identifier) for a position in the array.
  3. you could create an alias (reference) with a name (identifier) for an element in the array.
struct Silicon
    Silicon( const char* n ) : _name(n) {}
    const std::string& name() const { return _name ; } 
    /* ... */
    private: const std::string _name ;

         GRYPHON=3, LORY=4, N = 5 } ;
  Silicon Si[N] = { "Mad_hatter", "Cheshire Cat", "March Hare",
                    "Gryphon", "Lory" } ;
  Silicon& cheshire_cat = Si[ CHESHIRE_CAT ] ;
  Silicon& gryphon = Si[ GRYPHON ] ;
  int Lorina_Charlotte_Liddell = LORY ;
  Silicon& lorina = Si[ Lorina_Charlotte_Liddell ] ;
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.