تفاوت اشاره گر در c++ و مرجع در java - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت اشاره گر در c++ و مرجع در java

+2 امتیاز
سلام

تفاوت اشاره گر و مرجع؟ من هر چی مطلب در این باره میخونم چیزی متوجه نمیشم ممنون میشم واضح و روشن تفاوتشون رو توضیح بدین
سوال شده آذر 6, 1394  بوسیله ی امیدوار (امتیاز 872)   21 63 76

1 پاسخ

0 امتیاز

متغیرهای primitive  که شامل int, char, double, float, byte, boolean هستند، مثل c++ هست. ولی آبجکتها کلا به صورت اشاره ای هستند همینطور تعریف می شوند. همینظور در مورد متغیرهای non-primitive مثل Boolean,Integer,Float,...  

مثلا

Student a =new Student();

a یک اشاره گر به یه شی از نوع Student است که آدرس آنرا در خود دارد و بدون داشتن آدرس آن دسترسی به آن ممکن نیست. ولی در سی پلاس پلاس اگر بنویسیم

Student a();

a یک محل از حافظه است که محتویات a  را در خود دارد و باتغییرa مثلا

Student b();
b.name="s1";
a=b;

مقدار a  با مقدار b برابر میشود و مثلا نام تغییر میکند ولی مثلا در جاوا اگر داشته باشیم:

Student a =new Student();
Student b= new Student(ali,alavi);
a=b;

در واقع آدرسی که  a به آن اشاره میکند عوض شده  و با آدرسی که b به آن اشاره میکند برابر میشود. درواقع آن قسمت از حافظه که توسط a قبلا قابل دسترس بود از دسترس خارج می شود. اگر بخواهیم همین سبک برنامه رابه زبان c++ بنویسیم میشود:

Student *a=new Student();
Student *b= new Student("ali","alavi");
a=b;

برای اطلاعات کاملتر سیت جاواکاپ اموزشهای خوبی داره.  و لینک https://stackoverflow.com/questions/3820178/what-is-the-main-difference-in-object-creation-between-java-and-c یه سر بزنید.

پاسخ داده شده دی 3, 1396 بوسیله ی Ebrahim2017 (امتیاز 12)   1
ویرایش شده دی 3, 1396 بوسیله ی farnoosh
...