add pointer

add "dynamic" heap array
add polymorphic
This commit is contained in:
2025-03-26 12:44:05 +01:00
parent abb1ea4a38
commit 4b6ac6a484
13 changed files with 339 additions and 1 deletions
+58
View File
@@ -0,0 +1,58 @@
#include <iostream>
using namespace std;
void changeInteger(int n);
void changeIntegerPerPointer(int* pN);
int changeIntegerPerReturn(int n);
void changeIntegerPerReference(int& n);
int main()
{
// general
int* pNumber = nullptr;
pNumber = new int(0);
cout << "size of pNumber: " << sizeof(pNumber) << endl;
cout << "size of pNumber data: " << sizeof(*pNumber) << endl;
*pNumber = 567;
//pNumber = new int(0); // BAD BAD - Memory Leak, because we override an existing pointer address with a new one without saving the old one
// here are 100s of lines of code
if (pNumber != nullptr)
{
delete pNumber;
pNumber = nullptr;
}
// pointer as references
int number = 0;
changeInteger(number);
changeIntegerPerPointer(&number);
changeIntegerPerPointer(pNumber);
changeIntegerPerReference(number);
return 0;
}
void changeInteger(int n)
{
n = 100;
}
void changeIntegerPerPointer(int* pN)
{
cout << "address of pN: " << &pN << endl;
if (pN == nullptr) return; // BE CAREFUL - if you don't what you get, do a test before
*pN = 200;
}
void changeIntegerPerReference(int& n)
{
n = 300;
}