Loading…
This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
Please visit the C++Now website.
View analytic
Tuesday, May 10 • 4:00pm - 5:30pm
Proper Inheritance (part 2 of 2)

Log in to save this to your schedule and see who's attending!

All essential behavior of our software must be documented, and yet there are important advantages, with respect to development, verification and testing, performance, and stability, for leaving the behavior for some combinations of inputs and initial conditions undefined. What is and is not defined behavior should therefore be readily discernible from the contract, especially when creating contracts that must span classes related by inheritance. In Part I of this talk, we review components, interfaces and contracts in general, and the significance of *narrow* versus *wide* contracts in particular. In Part II, we explore _three_ kinds of inheritance: (1) *Interface* *Inheritance* resulting from pure-virtual functions, (2) *Structural* *Inheritance* resulting from non-virtual functions, and (3) *Implementation* *Inheritance* resulting from non-pure virtual functions. Proper contracts involving each of these distinct forms have different criteria that must be addressed. The three kinds of inheritance are compared, and their relative utility is explained. What's more, several common uses of inheritance that are provably improper are summarily debunked.

Speakers
avatar for John Lakos

John Lakos

Software Infrastructure Manager, Bloomberg LP
John Lakos, author of "Large Scale C++ Software Design.", serves at Bloomberg LP in New York City as a senior architect and mentor for C++ Software Development world-wide. He is also an active voting member of the C++ Standards Committee, Library Working Group. Previously, Dr. Lakos directed the design and development of infrastructure libraries for proprietary analytic financial applications at Bear Stearns. For 12 years prior, Dr. Lakos... Read More →


Tuesday May 10, 2016 4:00pm - 5:30pm
Bethe

Attendees (16)