اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

فایده تابع عضو

0 امتیاز
92 نمایش

من به یه مشکلی تو برنامه‌نویسی شیءگرا برخوردم و اون اینه که وقتی یک شیء از نوع کلاسم تو تابع اصلی تعریف میکنم و میخوام باهاش کار کنم، خب توابع کلاس رو لازم دارم روش اعمال کنم، ولی بهم خطا میگیره که شناخته شده نیست. و اینجوری میشه که من تمام توابع کلاس رو به صورت دوست تعریف میکنم.
حالا سوالی که برام پیش میاد اینه که پس من کجا باید تابع رو عضو تعریف کنم و اصلا کجا به کار میاد این تابع عضو؟

پرسیده شده دوشنبه ۹ اردیبهشت ۱۳۹۲ در C++ توسط CPP_Crawler4  

۱- منظور از تابع اصلی چیه؟
۲- چه خطایی صادر می‌شه؟

منظور main هست.
باید کدشو پیدا کنم.
ولی سیستم اینجوری بود که من یه کلاس تعریف کردم با یه سری توابع که عضو بودن و بیرون کلاس تعریف شدن. بعد که تو main میومدم شیء میگرفتم و تابع روش اعمال میکردم، گیر میداد که این تابع شناخته شده نیست. برا همین رفتم همه رو فرند کردم.
کدشو پیدا کنم میگم منظور چی بود.

1 پاسخ

0 امتیاز

احتمالاً توابع عضو به صورت private یا protected تعریف شده‌ان. بنابراین به صورت مستقیم از بیرون کلاس در دسترس نیستن

class C
{
  private:
    void f(){...};
  protected:
    void g(){...};
  public:
    void h(){...};
};
int main()
{
  C *c = new C();
  c.f(); // اخطار کامپایل
  c.g(); // اخطار کامپایل
  c.h(); // کامپایل می‌شه
  return 0;
}

یه نکته‌ی مهم در مورد کلاس‌ها در C++ این هست که همه‌چی در کلاس به صورت پیش‌فرض private هست در صورت که در ساختار (struct) همه‌چی به صورت پیش‌فرض public هست.

کد زیر رو در نظر بگیرید

struct S
{
  int x;
};
class C
{
  int x;
};
int main()
{
  S s;
  s.x = 2; // ok
  C c;
  c.x = 2; // error
  return 0;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده شنبه ۵ مرداد ۱۳۹۲ توسط prodo