Mixin-Based Programming in C++
نویسندگان
چکیده
Combinations of C++ features, like inheritance, templates, and class nesting, allow for the expression of powerful component patterns. In particular, research has demonstrated that, using C++ mixin classes, one can express layered component-based designs concisely with efficient implementations. In this paper, we discuss pragmatic issues related to component-based programming using C++ mixins. We explain surprising interactions of C++ features and policies that sometimes complicate mixin implementations, while other times enable additional functionality without extra effort.
منابع مشابه
Mixin - Based Programming in C + + 1
Combinations of C++ features, like inheritance, templates, and class nesting, allow for the expression of powerful component patterns. In particular, research has demonstrated that, using C++ mixin classes, one can express layered component-based designs concisely with efficient implementations. In this paper, we discuss pragmatic issues related to component-based programming using C++ mixins. ...
متن کاملImplementing Layered Designs with Mixin Layers1
Mixin layers are a technique for implementing layered object-oriented designs (e.g., collaboration-based designs). Mixin layers are similar to abstract subclasses (mixin classes) but scaled to a multiple-class granularity. We describe mixin layers from a programming language viewpoint, discuss checking the consistency of a mixin layer composition, and analyze the language support issues involved.
متن کاملFeatureC++: Feature-Oriented and Aspect-Oriented Programming in C++
This paper presents FeatureC++, a novel programming language which supports Feature-Oriented Programming (FOP) for C++. Besides well-known concepts of FOP languages, FeatureC++ supports several novel FOP language features, in particular multiple inheritance and templates for Generic Programming. Furthermore, FeatureC++ solves, as some other FOP languages, the extensibility problem, the construc...
متن کاملMixin Layers: An Object-Oriented Implementation Technique for Re nements and Collaboration-Based Designs
A \re nement" is a functionality addition to a software project that can a ect multiple dispersed implementation entities (functions, classes, etc.). In this paper, we examine large-scale re nements in terms of a fundamental object-oriented technique called collaboration-based design. We explain how collaborations can be expressed in existing programming languages or be supported with new langu...
متن کاملModular Inheritance of Objects Through Mixin-Methods
In object-oriented programming languages the class concept is heavily overworked. To simplify things, there is a tendency to unbundle the different roles they play by trying to create more modular inheritance operators [Bracha&Lindstrom92]. This offers the advantage that classes can be composed in a modular way. Prototype-based languages on the other hand, also provide a simpler view on object-...
متن کامل