[ create a new paste ] login | about

Link: http://codepad.org/eOdokhpK    [ raw code | output | fork ]

C++, pasted on Jul 9:
class SampleClass
{
public:
    int m_data;
    int* m_pointer;
};

int main()
{
    SampleClass sample;

    // Derive a pointer type to the non-pointer class member
    int SampleClass::*pointerToMember = &SampleClass::m_data;

    sample.m_pointer = new int;
    SampleClass* pSample = &sample;

    pSample->*pointerToMember = 5;
    *sample.m_pointer = 10;

    // pSample->*pointerToMember = 5
    cout << "pSample->*pointerToMember = "
         << pSample->*pointerToMember << "\n";

    // sample.*pointerToMember = 5
    cout << "sample.*pointerToMember = "
         << sample.*pointerToMember << "\n";

    // *sample.m_pointer = 10
    cout << "*sample.m_pointer = "
         << *sample.m_pointer << "\n";

    // *pSample->m_pointer = 10
    cout << "*pSample->m_pointer = "
         << *pSample->m_pointer << "\n";

    delete sample.m_pointer;
}


Output:
1
2
3
4
pSample->*pointerToMember = 5
sample.*pointerToMember = 5
*sample.m_pointer = 10
*pSample->m_pointer = 10


Create a new paste based on this one


Comments: