Five tips for effective object-oriented programming in C++
Spurgeon’s Law says that 90% of everything is crap. This certainly holds true in the world of software development, and especially when it comes to object-orientation and C++ programming. This is largely due to the pervasiveness and complexity of C++; it’s one of the most commonly used object-oriented languages, and yet few people know how to use it effectively. Couple this with the fact that few programmers truly grasp the object-oriented programming philosophy and you have an instant recipe for sloppy code.
Volumes can be—and have been—written on how to develop proper object-oriented software designs using C++. Obviously, there won’t be space in this article for a truly thorough discussion; however, I would like to present a few quick, simple and effective tips for developing robust C++ software.
Work on the class designs first before deciding on the precise sequence of operations. Many programmers fancy themselves as doing object-oriented programming, but in reality, they use structured programming with some external object-oriented trappings. Ideally, one should first select a set of software objects that provide a logical abstraction of the software, then work on the sequence of operations. (This is by no means an absolute rule though, as the process of developing this sequence often reveals ways in which the object design can be refined.)
Think in terms of design patterns. Design patterns allow someone to draw on years of problem-solving experience within the computer science community. Instead of reinventing the wheel, why not just pick one off the shelf?
Use ‘const’ objects and ‘const’ functions whenever possible. If you know that an object’s data is never supposed to be modified, then declare the object to be ‘const’. This will prevent you—or worse, a naïve colleague--from accidentally modifying its state later on. Of course, one should also declare the appropriate member functions to be ‘const’ as well, to properly enforce this rule.
Avoid using public ‘get’ and ‘set’ member functions. Getters and setters are not inherently bad; however, they are often a sign of poor software abstraction. ‘Get’ and ‘set’ functions implicitly force the user to think in terms of the object’s internal data (i.e. whatever these functions are getting or setting), and such details should ideally be hidden from the object’s user. Getters and setters have their place, but please use them sparingly.
Avoid double indirection. C programmers are forced to work with pointers, and so they are used to having pointers to pointers throughout their code. This can often lead to confusing code, due to the all-too-familiar problems of NULL references and pointer arithmetic. In contrast, C++ programmers are under no such constraints, due to the built-in support for variable references in C++; that is, one can always use references to pointers instead, which makes the code much easier to understand. (Hint: If a C++ programmer uses double indirection, that’s a clear sign that he’s still thinking like an inexperienced C hack!)
V. B. Velasco Jr. is the senior electrical and software engineer for a biotechnology firm that offers immunology expertise, ELISPOT analysers, serum-free culture media and characterized and uncharacterized frozen PBMC.
Your Article Search Directory : Find in Articles
Recent articles in this category:
- Web Development Projects - Developers Tools Tips
Open source usually refers to software that is released with source code under a license that ensur - A Guide to Cnc Kits
Building a CNC machine means that you would require a lot of tools, parts or different components. - Xlphoto Printing, the Best Choice for Banner Printing and Poster Printing
Suppose, you have visited a tourist spot or a hill station; over there, you have witnessed some of - Reliable Software Programming
Software reliability is an important facet of software quality. It is defined as "the probability - Designing an Ecommerce Site
In a recent article I talked about Google AdSense placement based on eye-tracking research. Howeve - Asp.net Development Benefits
Rightway solution has been keenly looking out for. Microsoft ASP.NET is a free technology that allo - Choosing Offshore Software Development Company
To turn into successful and gain the full benefits of software outsourcing, you require preferring - E-commerce and Web Portal Development in Vietnam
VIETNAM, owing to its superior intellectual capital has emerged as the ultimate destination for - Types of Softwares
Computer software is a general term used to describe a collection of computer programs, procedur - Offshore it Out Sourcing Consultancy in Vietnam
Vendors who provide Off shore IT Outsourcing Consultancy services are referred to as outsourcing
Most viewed articles in this category:
- Oracle Applications (Oracle E-Business Suite) Customizations: What is it?
Oracle recommends every company that installs Oracle Applications to avoid any customization, but I - Offshore Outsourcing: An All Win Premise
The awareness that outsourcing can boost productivity sans forfeit of class has impelled MNC’s - Oracle E-Business Suite vs. Microsoft Dynamics AX - Axapta: LATAM and Brazil
In this small article we will only concentrate on Microsoft Dynamics Axapta (and will not consider M - SAP Business One vs. Microsoft Dynamics GP - highlights for consultant
In this small article we will not make side-by-side technical specs comparison. We would rathe - Microsoft Great Plains - licensing and product versions
Current Microsoft Business Solutions Great Plains has more that 10 years of history. Former Gr - OCR Software - Optical Character Recognition or Optical Crud Recognition?
Optical Character Recognition (OCR) refers to a software technology and processes that involve the t - Microsoft Dynamics AX - Axapta - technical notes plus customization
Axapta or current name Microsoft Dynamics AX has one of the newest ERP design and architecture among - Microsoft Dynamics AX-GP-NAV-CRM: trends and international recommendations
Microsoft Great Plains/Microsoft Dynamics GP, Microsoft Navision (former Attain) Microsoft Dynamics - Microsoft Moves to Small Business Accounting/Retail Market - stakes and thoughts
In this small article we will be looking at the new opportunities for Microsoft Small Business Serve - Microsoft Axapta - Dynamics AX: Brazilian Portuguese version - consultant highlights
Axapta/Microsoft Dynamics AX short overview. Navision Axapta was designed by Navision Software

