The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Borrow, copy or steal?: loans and larceny in the orthodox canonical form
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Letters to the editor: go to statement considered harmful
Communications of the ACM
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Modern C++ design: generic programming and design patterns applied
Modern C++ design: generic programming and design patterns applied
The C++ Programming Language
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
R++: Adding Path-Based Rules to C++
IEEE Transactions on Knowledge and Data Engineering
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
On orthogonality in programming languages
ACM SIGPLAN Notices
The implementation of generic smart pointers for advanced defensive programming
Software—Practice & Experience
Safe, efficient garbage collection for C++
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
Hi-index | 0.00 |
In order to achieve good reliability, clarity, scalability and re-usability of the application high-level programs written in C++ the raw pointers should not be used as class members (fields), because the raw pointers are too dangerous in this role and they do not represent meaningful relations between objects. Instead of raw pointers two smart pointers should be used. The first one describes exclusive unique ownership with synchronization of objects copying and deletion. The second one describes inclusive references to independent alien objects with invalidating the reference at the deletion of the addressed object. All power of object-oriented programming is preserved, but difficulties and errors are eliminated.