Advertisement
Guest User

Untitled

a guest
Sep 12th, 2019
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. // GoodTimeToUsePointer.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. class classA
  7. {
  8. };
  9.  
  10. class classB
  11. {
  12. public:
  13.     classA PropertOfInstanceA;
  14.     classA* PropertOfInstanceAPointer;
  15. };
  16.  
  17. classA createInstanceA()
  18. {
  19.     classA instanceA;
  20.     return instanceA;  
  21. };
  22.  
  23. classA* createInstanceAPointer()
  24. {  
  25.     classA* instanceAPointer = new classA();
  26.     return instanceAPointer;
  27. };
  28.  
  29. classB createInstanceBWithInstanceA(classA passedInstanceA)
  30. {
  31.     classB instanceB;
  32.     instanceB.PropertOfInstanceA = passedInstanceA;
  33.     return instanceB;
  34. }
  35.  
  36. classB createInstanceBWithInstanceAPointer(classA* passedInstanceAPointer)
  37. {
  38.     classB instanceB;
  39.     instanceB.PropertOfInstanceAPointer = passedInstanceAPointer;
  40.     return instanceB;
  41. }
  42.  
  43. classB* createInstanceBPointerWithInstanceA(classA passedInstanceA)
  44. {
  45.     classB* instanceBPointer = new classB();
  46.     instanceBPointer->PropertOfInstanceA = passedInstanceA;
  47.     return instanceBPointer;
  48. }
  49.  
  50. classB* createInstanceBPointerWithInstanceAPointer(classA* passedInstanceAPointer)
  51. {
  52.     classB* instanceBPointer = new classB();
  53.     instanceBPointer->PropertOfInstanceAPointer = passedInstanceAPointer;
  54.     return instanceBPointer;
  55. }
  56.  
  57. int main()
  58. {  
  59.     // InstanceA + InstanceB
  60.     classA returnedInstanceAForInstanceB = createInstanceA();
  61.     classB returnedInstanceBWithInstanceA = createInstanceBWithInstanceA(returnedInstanceAForInstanceB);
  62.    
  63.     // InstanceAPointer + InstanceB
  64.     classA* returnedInstanceAPointerForInstanceB = createInstanceAPointer();
  65.     classB returnedInstanceBWithInstanceAPointer = createInstanceBWithInstanceAPointer(returnedInstanceAPointerForInstanceB);
  66.  
  67.     // InstanceA + InstanceBPointer
  68.     classA returnedInstanceAForInstanceBPointer = createInstanceA();
  69.     classB* returnedInstanceBPointerWithInstanceA = createInstanceBPointerWithInstanceA(returnedInstanceAForInstanceBPointer);
  70.  
  71.     // InstanceAPointer + InstanceBPointer
  72.     classA* returnedInstanceAPointerForInstanceBPointer = createInstanceAPointer();
  73.     classB* returnedInstanceBPointerWithInstanceAPointer = createInstanceBPointerWithInstanceAPointer(returnedInstanceAPointerForInstanceBPointer);
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement