Tuesday, January 22, 2013

Base Class Pointer


#include<iostream>
using namespace std;

class A{
public:
        virtual void f1()
        {
                cout<< "in A:: f1()"<<endl;
        }
};


class B : public A{
public:
        void f1()
        {
                cout<<"in B: f1()"<<endl;
        }
        virtual void f2()
        {
                cout<<"in B: f2()"<<endl;
        }

};

int main()
{

        A *pa = new B;
        pa->f1();
        pa->f2(); // Compile error as f2() is not known to base class

}

Char Pointer : Segmentation Fault



#include<iostream>
using namespace std;
int main()
{
        //value will be in read only area of data segment
        char *str = "abc";
        cout<<"Str = "<<str<<endl;
        str[1] = 'x';// This will give segmentation fault
        cout<<"Str = "<<str<<endl;
}

PS: char str[] = "abc"; will be in stack hence can be modified.