Tools and libraries to glue C/C++ APIs to high-level languages
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

84 lines
1.3 KiB

#include "InheritanceTests.h"
NumberClass::NumberClass (int n)
: num (n)
{
}
int NumberClass::Number () const
{
return this->num;
}
int NumberClass::NegativeNumber () const
{
return -(this->Number ());
}
NumberClass::~NumberClass ()
{
this->num = 0;
}
AdderClass::AdderClass (int n)
: NumberClass (n)
{
}
void AdderClass::Add (int n)
{
this->num += n;
}
AdderClassWithVirtualBase::AdderClassWithVirtualBase (int n)
: NumberClass (n)
{
}
void AdderClassWithVirtualBase::Add (int n)
{
this->num += n;
}
MultiplierClass::MultiplierClass (int n)
: NumberClass (n)
{
}
void MultiplierClass::Multiply (int n)
{
this->num *= n;
}
MultiplierClassWithVirtualBase::MultiplierClassWithVirtualBase (int n)
: NumberClass (n)
{
}
void MultiplierClassWithVirtualBase::Multiply (int n)
{
this->num *= n;
}
ClassThatOverridesStuff::ClassThatOverridesStuff (int num, int my)
: NumberClass (num), myNum (my)
{
}
int ClassThatOverridesStuff::Number () const
{
return this->myNum;
}
int ClassThatOverridesStuff::BaseNumber () const
{
return this->NumberClass::Number ();
}
NumberClass* ClassThatOverridesStuff::GetInstance (int num, int my)
{
return new ClassThatOverridesStuff (num, my);
}
ClassThatRoundtrips::ClassThatRoundtrips (NumberClass* managed)
{
this->nc = managed;
}
NumberClass* ClassThatRoundtrips::GetIt ()
{
return this->nc;
}