blob: 9ca8e935df9d9496829c936bb405845baccc7476 [file] [log] [blame]
//===-- main.cpp ------------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
class A
{
public:
A(int i=0):
m_a_int(i),
m_aa_int(i+1)
{
}
//virtual
~A()
{
}
int
GetInteger() const
{
return m_a_int;
}
void
SetInteger(int i)
{
m_a_int = i;
}
protected:
int m_a_int;
int m_aa_int;
};
class B : public A
{
public:
B(int ai, int bi) :
A(ai),
m_b_int(bi)
{
}
//virtual
~B()
{
}
int
GetIntegerB() const
{
return m_b_int;
}
void
SetIntegerB(int i)
{
m_b_int = i;
}
protected:
int m_b_int;
};
class C : public B
{
public:
C(int ai, int bi, int ci) :
B(ai, bi),
m_c_int(ci)
{
}
//virtual
~C()
{
}
int
GetIntegerC() const
{
return m_c_int;
}
void
SetIntegerC(int i)
{
m_c_int = i;
}
protected:
int m_c_int;
};
int
main (int argc, char const *argv[])
{
A a(12);
B b(22,33);
C c(44,55,66);
return b.GetIntegerB() - a.GetInteger() + c.GetInteger();
}