اول یه چیزی.
نقل قول:
چون که همه ی این کدها به زبان ماشین خطم میشه ، و شی و ارث بری و ..... ، در زبان ماشین معنی نداره و فقط شما فکر میکنی که یه شی به وجود اوردی
من چنین فکری نمیکنم!!!
نقل قول:
پس سعی کن اول تحقیق کنی بعد فکر کنی
ببخشید, شما هم سعی کن اول طرفت رو بشناسی بعد به تحقیق دعوتش کنی.
منظور من اینه که اول درباره ی زبان ماشین تحقیق کن.
اتفاقا در نگاه اول برنامه هیج مشکلی ندارد! در این نمونه کد، تابع doStuff از اشاره گر this استفاده نکرده است، بنابر این مقدار f مطرح نیست.
اشاره گر this در توابع مجازی و توابع برای دستیابی به متغیر های عضو غیر استاتیک به کار می رود. در غیر این دو اشاره گر this در توابع استفاده نشده ( مانند مثال شما) و بنا بر این f میتواند bat Pointer نیز باشد.(چون دیگر مقدار f مطرح نیست.)
و منظور من از این کد این بود که شی گرایی وجود نداره و این متدها هم وجود ندارند.
نمونه ی این کلاس در C :
#include <windows.h>
#include <stdio.h>
struct Foo
{
int a;
};
void Foo_doStuff(struct Foo* par)
{
printf("hi from Foo!\n");
}
int main(int argc, char *argv[])
{
struct Foo *f = NULL;
Foo_doStuff(f);
return 0;
}
یک سوال اساسی از شما دارم: چرا زبان C++ به وجود آمد؟؟ جواب این سوال حتما شما قانع خواهد کرد.
بازم میگم من نگفتم که C بهتره و ++C بی مصرفه (100 بار اینو گفتم)
و این حرفام به خاطر اینه که از C بد یاد شده.
و میخوام بگم که C هنوز زندست.
یک سوال اساسی از شما دارم: چرا زبان C++ به وجود آمد؟؟ جواب این سوال حتما شما قانع خواهد کرد.
به همون دلیلی که C بوجود اومد.
به همون دلیلی که زبان های دیگر به وجود اومدند.
و اینم درنظر بگیرید که تمام کدها در آخر به کد ماشین تبدیل میشن ، که نه تنها شی گرایی و .... وجود واقعی نداره ، بلکه While و if و struct و .... خیلی چیزای دیگه وجود واقعی نداره و این کامپایلر است که این دستورات رو به زبان ماشین تبدیل میکنه و دستورای این زبانها در پشت پرده طور دیگه ای عمل میکنن.
و یه سوالی از جناب simul8or .
چرا زبان های Objective-C و D و .... بوجود آمده؟