Advertisement
Guest User

Working example of constructor class with dynamic array

a guest
Mar 13th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. class Class{
  7. private:
  8.     string a;
  9. public:
  10.     void setA(string b){a = b;}
  11.     string getA(){return a;}
  12. };
  13. class Container{
  14. private:
  15.     int n, current;
  16.     Class *C;
  17. public:
  18.     Container(): C(NULL), n(0), current(0){}
  19.     void toFirst() {current = 0;}
  20.     void toNext() {if(current < n)current++;}
  21.     bool notLast() {return current < n;}
  22.     void expandC(int ammount){
  23.       Class *NewClass= new Class[ammount];
  24.       for (int i = 0; i < n; i++)
  25.         NewClass[i] = C[i];
  26.         delete []C;
  27.         C = NewClass;
  28.         n = ammount;
  29.     }
  30.  
  31.     void addC(string name){
  32.       expandC(n+1);
  33.       C[n-1].setA(name);
  34.       current = n;
  35.     }
  36.     void setC(string name){
  37.         if(current+1<=n){
  38.             C[current].setA(name);
  39.         }else{
  40.             addC(name);
  41.         }
  42.      
  43.     }
  44.     string getName  ()  { return C[current].getA(); }
  45. };
  46.  
  47. void main(){
  48.   Container *CONT;
  49.   CONT = new Container;
  50.   CONT->expandC(10);  
  51.   CONT->toFirst();
  52.   while(CONT->notLast()){
  53.       CONT->setC("value");
  54.       CONT->toNext();
  55.   }
  56.  
  57.   CONT->toFirst();
  58.   while(CONT->notLast()){
  59.       cout << CONT->getName()<<endl;
  60.       CONT->toNext();
  61.   }
  62. system("Pause");
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement