This chapter will explore one possible way to describe hardware using C++. The first matter to be addressed will be the problem of classification. Once the major classes have been established and described in detail, methods of expressing connectivity will be examined and a technique for describing hardware in a hierarchical fashion will be presented. Since the C++ code required to describe hardware in this manner is relatively small, relevant portions of the actual source will be presented, accompanied with annotations explaining the particular methods. Source code which is specific to circuit simulation will be presented in the next chapter. At the end of this chapter, several examples are presented to demonstrate how more complex devices can be created from smaller ones via encapsulation.