Learning several script/programming languages at the same time.
- Types
- Operators
- Control flow
- Strings
- Arrays
- Functions
- Enums
- Structures
- Unions
- Classes
- Pointers
- Exceptions
- Templates
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Enums | enums.pas | enums.cpp | Enums.java | Enums.cs | -- | -- | enums.php | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Structures | records.pas | structures.cpp | -- | structures.cs | -- | -- | -- | -- | -- |
| Default access level in inheritance | -- | default_structure_inheritance_access_level.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Unions | -- | unions.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Explicit constructor | -- | explicit_constructor.cpp | -- | -- | -- | -- | -- | -- | -- |
| Converting constructor | -- | converting_constructor.cpp | ConvertingConstructor.java | ConvertingConstructor.cs | -- | -- | -- | -- | -- |
| Conversion operator | -- | conversion_operator.cpp | -- | ConversionOperators.cs | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Single argument minus operator | -- | nonmember_single_argument_minus_operator.cpp member_single_argument_minus_operator.cpp |
-- | SingleArgumentMinusOperator.cs | -- | -- | -- | single_argument_minus_operator.rb | -- |
| Double argument plus operator | -- | nonmember_double_argument_plus_operator.cpp member_double_argument_plus_operator.cpp |
-- | DoubleArgumentPlusOperator.cs | -- | -- | -- | double_argument_plus_operator.rb | -- |
| Assignment operator | -- | assignment_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Preincrement operator | -- | preincrement_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Predecrement operator | -- | predecrement_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Postincrement operator | -- | postincrement_operator.cpp | -- | IncrementOperator.cs | -- | -- | -- | -- | -- |
| Postdecrement operator | -- | postdecrement_operator.cpp | -- | DecrementOperator.cs | -- | -- | -- | -- | -- |
| Subscription operator | -- | subscripting_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Call operator | -- | call_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Arrow operator | -- | arrow_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Reading from stream operator | -- | reading_from_stream_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Writing to stream operator | -- | writing_to_stream_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| New and delete operators | -- | new_and_delete_operators.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Abstract class | -- | abstract_class.cpp | AbstractClass.java | AbstractClass.cs | -- | -- | abstract_class.php | -- | -- |
| Abstract functions | -- | abstract_functions.cpp | AbstractFunctions.java | AbstractFunctions.cs | -- | -- | abstract_functions.php | -- | -- |
| Abstract functions with implementation | -- | abstract_functions_with_implementation.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Interface | -- | -- | Interface.java | Interface.cs | -- | -- | interface.php | -- | -- |
| Interface extending interface | -- | -- | InterfaceExtendingInterface.java | InterfaceExtendingInterface.cs | -- | -- | interface_extending_interface.php | -- | -- |
| Implementing multiple interfaces | -- | -- | ImplementingMultipleInterfaces.java | ImplementingMultipleInterfaces.cs | -- | -- | implementing_multiple_interfaces.php | -- | -- |
| Interface and abstract class | -- | -- | InterfaceAndAbstractClass.java | InterfaceAndAbstractClass.cs | -- | -- | interface_and_abstract_class.php | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Mixins | -- | -- | -- | -- | -- | -- | -- | mixin.rb | -- |
| Mixin including mixin | -- | -- | -- | -- | -- | -- | -- | mixin_including_mixin.rb | -- |
| Including multiple mixins | -- | -- | -- | -- | -- | -- | -- | including_multiple_mixins.rb | -- |
| Diamond problem | -- | -- | -- | -- | -- | -- | -- | diamond_problem.rb | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Pointers and types | pointers_and_types.pas | pointers_and_types.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pointers definition, initialisation and assignment | definition_initialisation_and_assignment.pas | definition_initialisation_and_assignment.cpp | -- | -- | -- | -- | -- | -- | -- |
| Address, indirection, reference and dereference | -- | address_indirection_reference_and_dereference.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pointers as r- and l-values | r_and_l_value.pas | r_and_l_value.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operator reinterpret_cast | -- | operator_reinterpret_cast.cpp | -- | -- | -- | -- | -- | -- | -- |
| Void pointer | -- | void_pointer.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operations on arrays with pointers | -- | operations_on_arrays.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operations on pointers | -- | operations_on_pointers.cpp | -- | -- | -- | -- | -- | -- | -- |
| Comparing pointers | comparing_pointers.pas | comparing_pointers.cpp | -- | -- | -- | -- | -- | -- | -- |
| Passing scalar arguments to the function by a pointer | -- | passing_scalar_arguments_to_function_by_pointer.cpp | -- | -- | -- | -- | -- | -- | -- |
| Passing array arguments to the function by a pointer | -- | passing_array_arguments_to_function_by_pointer.cpp | -- | -- | -- | -- | -- | -- | -- |
| Passing arguments to the function by a pointer to a constans | -- | passing_arguments_to_function_by_pointer_to_const.cpp | -- | -- | -- | -- | -- | -- | -- |
| Passing constans arguments to the function by a pointer | -- | passing_const_arguments_to_function_by_pointer.cpp | -- | -- | -- | -- | -- | -- | -- |
| Address access by pointer | address_access.pas | address_access.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operators new and delete working with pointers | -- | operators_new_and_delete.cpp | -- | -- | -- | -- | -- | -- | -- |
| Returning a pointer by the function | -- | returning_pointer_by_function.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operator new with initialisation | -- | operator_new_with_initialisation.cpp | -- | -- | -- | -- | -- | -- | -- |
| Dynamic memory allocation with the mew operator | -- | dynamic_memory_allocation.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operations on multidimensional arrays with pointers | -- | operations_on_multidimensional_arrays.cpp | -- | -- | -- | -- | -- | -- | -- |
| Placement new operator | -- | placement_new_operator.cpp | -- | -- | -- | -- | -- | -- | -- |
| Memory allocation failure handling: the pointer with value 0 | -- | memory_allocation_failure_handling_pointer_zero.cpp | -- | -- | -- | -- | -- | -- | -- |
| Memory allocation failure handling: std::bad_alloc exception | -- | memory_allocation_failure_handling_bad_alloc.cpp | -- | -- | -- | -- | -- | -- | -- |
| Memory allocation failure handling: std::set_new_handler function | -- | memory_allocation_failure_handling_set_new_handler.cpp | -- | -- | -- | -- | -- | -- | -- |
| Constant pointers and pointers to the constants | -- | const_pointers_and_pointers_to_const.cpp | -- | -- | -- | -- | -- | -- | -- |
| Default pointer value | -- | default_pointer_value.cpp | -- | -- | -- | -- | -- | -- | -- |
| Ways of setting pointers | setting_pointers.pas | setting_pointers.cpp | -- | -- | -- | -- | -- | -- | -- |
| Operator const_cast | -- | operator_const_cast.cpp | -- | -- | -- | -- | -- | -- | -- |
| Arrays of pointers | -- | arrays_of_pointers.cpp | -- | -- | -- | -- | -- | -- | -- |
| Function pointers | -- | function_pointers.cpp | -- | -- | -- | -- | -- | -- | -- |
| Pascal | C++ | Java | C# | JavaScript | Perl | PHP | Ruby | Python | |
|---|---|---|---|---|---|---|---|---|---|
| Function template | -- | function_template.cpp | -- | -- | -- | -- | -- | -- | -- |
| Class template | -- | class_template.cpp | -- | -- | -- | -- | -- | -- | -- |
This project is licensed under the GPL-3.0 - see LICENSE.md.