هل نسخ الضحلة حصة المؤشرات؟ (C ++)
-
22-07-2019 - |
سؤال
وأنا أعلم أنه إذا أفعل شيئا من هذا القبيل:
class Obj
{
public:
int* nine;
};
Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name
وبعد ذلك سوف Obj1
وObj2
s nine
ويشير إلى نفسه 8
، ولكن سوف أنهما يشتركان في نفس المؤشر؟ أي بمعنى:.
int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
وسوف Obj2
في نقطة nine
إلى Necronine
، أو أنه سيبقى لافتا في 8
؟
المحلول
<اقتباس فقرة>
وسوف نقطة Obj2 لNecronine تسعة، أو أنه سيبقى لافتا في 8؟
اقتباس فقرة> وسوف تبقى لافتا في 8. عند تنفيذ هذا السطر:
الكائنات Obj2 = Obj1. // كل كائن له له مؤشر خاص
يتم نسخ value(copy)
من obj1.nine
إلى obj2.nine
و thats عليه.
لا تنتمي إلى StackOverflow