We may earn an affiliate commission when you visit our partners.
Kate Gregory

Do parts of your C++ code base appear to be in some other programming language entirely? Are you trying to read a maze of typedefs, macros, function pointers, and pointer arithmetic? This course will show you how to read and understand that code.

Read more

Do parts of your C++ code base appear to be in some other programming language entirely? Are you trying to read a maze of typedefs, macros, function pointers, and pointer arithmetic? This course will show you how to read and understand that code.

Because C++ has existed for decades, there is a lot of old code out there written with keywords, library functions, and practices that are just not used in modern C++. In this course, Reading Legacy C++, you will gain the ability to read and understand that old code. First, you will learn to read code that works with C-style arrays and C-style strings. Next, you will discover macros, typedefs, and some other old constructs. Finally, you will explore how to read and understand calls to printf, including format strings. When you are finished with this course, you will have the skills and knowledge of legacy C++ needed to understand and maintain this old code.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Course Overview
Arrays, Pointer Arithmetic, and Strings
Macros, Old Keywords, More Pointers, and Printf

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops skills in reading older versions of C++
Should be taken by students who want to maintain older codebases

Save this course

Save Reading Legacy C++ to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Reading Legacy C++ with these activities:
Organize Course Materials
Stay organized and improve your retention by compiling and reviewing course materials.
Show steps
  • Collect and organize notes, assignments, quizzes, and exams.
  • Review and summarize materials regularly to reinforce your understanding.
Review the C++ Programming Language
Gain a comprehensive understanding of the C++ programming language from its creator.
View Programming on Amazon
Show steps
  • Read through the book to understand the fundamental concepts of C++.
  • Refer to the book for guidance and clarification while working on course assignments.
Show all two activities

Career center

Learners who complete Reading Legacy C++ will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. They work to ensure that software applications are developed, tested, and deployed in a reliable and efficient manner. They may also work to automate the software development and deployment process, and they may work to improve the communication and collaboration between development and operations teams. This course may be useful for DevOps Engineers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Engineers with proficiency in this area will be able to more effectively work with legacy C++ code and automate the development and deployment process.
Software Developer
Software Developers design, develop, and maintain software applications. They work with stakeholders to gather requirements, define system specifications, and ensure that software applications meet the needs of the organization. They may also develop and implement software architectures, and they may manage the development and implementation of software applications. This course may be useful for Software Developers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Developers with proficiency in this area will be able to more effectively develop and maintain applications that include legacy C++ code.
Systems Engineer
Systems Engineers design, implement, and maintain complex systems. They work with stakeholders to gather requirements, define system specifications, and ensure that systems meet the needs of the organization. They may also develop and implement system architectures, and they may manage the development and implementation of systems. This course may be useful for Systems Engineers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Engineers with proficiency in this area will be able to more effectively design, implement, and maintain systems that include legacy C++ code.
Software Test Engineer
Software Test Engineers test and evaluate software products to ensure that they meet the requirements and specifications of the organization. They may also develop and implement test plans and procedures, and they may work with developers to identify and fix defects. This course may be useful for Software Test Engineers as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Test Engineers with proficiency in this area will be able to more effectively test and evaluate legacy C++ systems.
Software Quality Assurance Engineer
Software Quality Assurance Engineers develop and implement quality assurance processes and procedures to ensure that software products meet the requirements and specifications of the organization. They may also test and evaluate software products, and they may work with developers to identify and fix defects. This course may be useful for Software Quality Assurance Engineers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Engineers with proficiency in this area will be able to more effectively develop and implement quality assurance processes for legacy C++ systems.
Technical Support Specialist
Technical Support Specialists provide technical support to users of computer hardware and software. They answer questions, troubleshoot problems, and resolve issues. They may also train users on new software or hardware, and they may provide documentation to help users resolve issues on their own. This course may be useful for Technical Support Specialists as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Specialists with proficiency in this area will be able to more effectively support users who are experiencing issues with legacy C++ systems.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, technical reports, and white papers. They work with subject matter experts to gather and organize information, and they write and edit documentation to communicate complex technical information clearly and effectively. This course may be useful for Technical Writers as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Writers with proficiency in this area will be able to more effectively create and maintain documentation for systems that include legacy C++ code.
IT Project Manager
IT Project Managers plan, coordinate, and oversee the implementation of information technology (IT) projects. They work with stakeholders to define project scope, requirements, and timelines, and they ensure that projects are completed on time, within budget, and to the required specifications. This course may be useful for IT Project Managers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Managers with proficiency in this area are likely to be more effective at directing projects involving legacy codebases.
Database Administrator
Database Administrators are responsible for the design, implementation, and maintenance of database systems. They work with stakeholders to gather requirements, define data models, and ensure that database systems meet the needs of the organization. This course may be useful for Database Administrators as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Administrators with proficiency in this area will be able to more effectively manage and maintain databases that are integrated with legacy C++ systems.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software products to ensure that they meet the requirements and specifications of the organization. They may also develop and implement quality assurance processes and procedures, and they may work with developers to identify and fix defects. This course may be useful for Quality Assurance Analysts as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Analysts with proficiency in this area will be able to more effectively test and evaluate legacy systems for defects.
Software Development Manager
Software Development Managers plan, coordinate, and oversee software development projects. They work with stakeholders to define project scope, requirements, and timelines, and they ensure that projects are completed on time, within budget, and to the required specifications. This course may be useful for Software Development Managers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Managers who have proficiency in this area are likely to be more effective at directing projects involving legacy codebases.
Computer Systems Analyst
Computer Systems Analysts study an organization's current computer systems and procedures, and design solutions to help the organization operate more efficiently and effectively. They may also design and implement new computer systems or applications, or modify existing systems to meet changing needs. This course may be useful for Computer Systems Analysts as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Analysts with proficiency in this area will be more capable of designing and implementing solutions that involve legacy systems.
Software Architect
Software Architects design, build, and maintain complex software systems. They work with stakeholders to gather requirements, define system specifications, and ensure that software systems meet the needs of the organization. This course may be helpful for Software Architects as it teaches the skills and knowledge necessary to understand and maintain legacy C++ code. Architects with experience in this area are likely attractive candidates for organizations with a need for migration or integration of legacy systems into a modern development stack.
Computer Programmer
Computer Programmers write, test, debug, and maintain the instructions that direct computers to perform various tasks. They use programming languages to create programs that solve specific problems or produce specific results. This course may be useful for Computer Programmers, as the skills and knowledge taught can be used to read and understand legacy C++ code. Programmers who can show proficiency in this area may be preferred hires for organizations with legacy systems.
Software Engineer
Software Engineers carry out design, development. They may also be involved in testing, debugging, or maintenance of computer software. They also work with computer hardware and software systems to meet the needs and constraints of an organization. This course may be useful for Software Engineers as it can teach the skills and knowledge necessary to understand and maintain legacy C++ code. Engineers who can show proficiency in this area may be attractive hires for organizations with legacy systems.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Reading Legacy C++.
Provides an annotated reference manual for the C++ programming language. It valuable resource for experienced C++ programmers who want to learn more about the language.
Is the definitive guide to the C++ programming language, written by its creator. It valuable resource for anyone who wants to learn C++ or understand the language in depth.
Provides a comprehensive overview of the C++ programming language, covering both the basics and advanced topics. It valuable resource for both beginners and experienced programmers alike.
Provides a comprehensive guide to object-oriented design principles and patterns in C++. It valuable resource for experienced C++ programmers who want to improve their design skills.
Provides a collection of best practices and idioms for writing effective and efficient C++ code. It valuable resource for experienced C++ programmers who want to improve their skills.
Provides a comprehensive guide to concurrency in C++. It valuable resource for experienced C++ programmers who want to learn more about concurrency.
Provides a comprehensive guide to network programming in C++. It valuable resource for experienced C++ programmers who want to learn more about network programming.
Provides a comprehensive guide to C++ templates, one of the most powerful features of the language. It valuable resource for experienced C++ programmers who want to learn more about templates.
Provides a crash course in the C++ programming language. It valuable resource for beginners who want to learn the basics of C++ quickly.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser