User Tools

Site Tools


basic:programming_cpp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
basic:programming_cpp [2024/10/10 07:52] – created azmanbasic:programming_cpp [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Object-Oriented Programming (OOP) ====== 
- 
-This module on object-oriented programming is intended for engineering degree students. 
- 
-To go through this course, you're expected to have some basic computer programming knowledge (preferably C). 
- 
-Object-oriented programming (OOP) is a programming technique that evolves from the more common procedural/modular programming. In procedural programming a solution usually revolves around breaking down a task into smaller ones and writing a function (or procedure - hence the word procedural) specifically to deal with each of that (usually single) small task. Thus, you see a lot of functions that takes data structure (usually in form of a pointer) as an argument. In contrast, object-oriented programming focus more on modelling a solution as an object - which can be an instance of a more generic category. As an object, the solution would have properties (merely a variable in procedural programming) that describes the object, and methods (functions in procedural programming) which are processes used to model how an object acts/reacts. Based on this, it is clear that object-oriented programming is a technique and not just language. So, writing a program in C++ (or using a C++ compiler) still doesn't qualify as implementing object oriented programming - it is still possible to write a solution purely based on modular programming using C++ (especially when the all classes have public members only). 
- 
-The main features of OOP are encapsulation, inheritance and polymorphism. The page on [[wp>object-oriented programming|wikipedia]] also list others, but I feel those can actually be sub-categorized under (or stems from) the mentioned features. So, a language that supports these features should qualify as a language that supports OOP (i.e. enables implementing a solution using OOP technique). C++ and Java are the early popular implementations (C++ because of its roots in C and Java because.... well, it's Java! Maybe also because it's among the first to promote cross platform implementation). 
- 
-//To be continued...// 
- 
-[[wp>object-oriented programming|Read more @ wikipedia]] 
- 
-===== Structured Programming ===== 
- 
-//coming soon...// 
- 
-===== Development Environment ===== 
- 
-//coming soon...// 
- 
-====== Part 00: Introduction to OOP ====== 
- 
-===== Objective(s): ===== 
- 
-To familiarize with terms and stuffs in object-oriented programming. Also, basic transition from C to C++ will be demonstrated. 
- 
-==== What is OOP?  ==== 
- 
-It is a programming paradigm (or programming style, if you please) that focuses on modelling solution components as objects, rather than concentrating on the solution procedures. Obviously, it is not a new language - but it does need proper language support (i.e. constructs) in order to implement the concept. Some may use a language that supports OOP but still use modular or simply procedural programming. 
- 
-//to be continued...// 
- 
-==== Why OOP?  ==== 
- 
- 
-  - (lec) course briefing and refresh basic programming 
-  - (lec) implementation platform revised (c++ instead of java) 
-  - (lab) development environment (using mingw) 
-  - (lab) refresh basic programming 
-  - modular/procedural programming vs object-oriented programming 
-  - from c to c++ 
-  - basic overview of c++ 
-  - keyword(s): structs, classes 
-  - basic phonebook application 
-  - compare modular/procedural vs object-oriented 
-  - encapsulation 
-  - keyword(s): private, protected, publid 
-  - member functions 
-  - constructor, destructor (actually part of dynamic dispatch?) 
-  - dynamic dispatch 
-  - intro to inheritence 
-  - lab assessment 1 
-  - access for inherited properties/methods 
-  - more inheritence... multiple? 
-  - keyword(s): virtual 
  
basic/programming_cpp.1728517942.txt.gz · Last modified: by azman