On this page:
Mapped C++ Class
A local Slice class is mapped to a C++ class with the same name. For example:
Slice
module Ice { local class ConnectionInfo { ... } }
is mapped to the C++ class ConnectionInfo
:
C++
namespace Ice { class ConnectionInfo : public virtual Ice::LocalObject { ... }; typedef IceInternal::Handle<ConnectionInfo> ConnectionInfoPtr; }
LocalObject in C++
Like local interfaces, local Slice classes implicitly derive from LocalObject
, which is mapped to Ice::LocalObject
in C++98.
Mapping for Local Interface Inheritance in C++
A local Slice class can extend another local Slice class, and can implement one or more local Slice interfaces. extends
for classes is mapped by default to simple inheritance in C++, while implements
is mapped to public virtual inheritance. For example:
Slice
module M { local interface A {} local interface B {} local class C implements A, B {} local class D extends C {} }
is mapped to:
C++
namespace M { class A : public virtual Ice::LocalObject { ... }; class B : public virtual Ice::LocalObject { ... }; class C : public virtual A, public virtual B { ... }; class D : public C { ... }; }