<p>The authors describe their experience adapting inheritance mechanisms to a new application domain, reliable distributed systems. They give an overview of Avalon/C++, a programming language under development that allows programmers to 'customize' the synchronization and fault-tolerance properties of data types by letting them inherit properties such as serializability and crash recovery from a library of basic types. The authors first describe the transaction model used to organize distributed computations and some relevant features of C++, and give an overview of the Avalon/C++ base hierarchy. They then describe in more detail each of the hierarchy's classes and some restrictions on their use that must be obeyed to preserve their semantic intent. An extended example illustrates a directory-type implementation that uses all three of the base classes. Related work is discussed.</p>