Thread: casting error

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Feb 2006
    Posts
    58

    casting error

    Hi,
    i got a base class,and 2 derieved classes.derieved1 and derieved 2.

    In the main class,i create a derieved1 and derieve2 object. add it to vector vector<base*> list .

    Then i try casting out the first vector item to see if dereived 1 or derieved2. the tests to check if derieved 1 or 2 work for both.

    The classes:

    Code:
    class base{
        protected:
            base(int val){
                value=val;
            }
        public:
    	int value;
    };
    
    class derieved1:public base {
        private:
    	string data;
             
            
        public:
    	derieved1(int val,string x):base(val),data(x){ }
            void print(){
                 cout<<"\ndereieved 1";
            }
    };
    
    class derieved2:public base {
        private:
            string data;
        public:
            derieved2(int val,string x):base(val),data(x){
            }
            void print(){
                 cout<<"\ndereieved 2";
            }
    };
    the main function:
    Code:
    int main(int argc, char *argv[])
    {
        vector<base*> list;
        derieved1* a=new derieved1(1,"derieved1");
        derieved2* b=new derieved2(2,"derieved2");
        
        list.push_back(a);
        list.push_back(b);
        
        base* bbbb=list[0];
        
        //cast it to both derieved objects.    
        derieved1*sb=static_cast<derieved1*>(bbbb);
        
        derieved2*sb1=static_cast<derieved2*>(bbbb);
        
        //check which one is valid.
        
        if(sb){
               cout<<"object of type derieved1"<<endl;
        }
        if(sb1){
               cout<<"object of type derieved2"<<endl; //should not display
        }
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    The program prints outs :

    object of type derieved1
    object of type derieved2
    Last edited by rahulsk1947; 06-08-2009 at 06:36 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Getting an error with OpenGL: collect2: ld returned 1 exit status
    By Lorgon Jortle in forum C++ Programming
    Replies: 6
    Last Post: 05-08-2009, 08:18 PM
  2. An error is driving me nuts!
    By ulillillia in forum C Programming
    Replies: 5
    Last Post: 04-04-2009, 09:15 PM
  3. Making C DLL using MSVC++ 2005
    By chico1st in forum C Programming
    Replies: 26
    Last Post: 05-28-2008, 01:17 PM
  4. Connecting to a mysql server and querying problem
    By Diod in forum C++ Programming
    Replies: 8
    Last Post: 02-13-2006, 10:33 AM
  5. Couple C questions :)
    By Divx in forum C Programming
    Replies: 5
    Last Post: 01-28-2003, 01:10 AM