add pointer
add "dynamic" heap array add polymorphic
This commit is contained in:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user