دلیل تعریف تابع بصورت const حتی زمانی که ورودی نداره - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

دلیل تعریف تابع بصورت const حتی زمانی که ورودی نداره

+1 امتیاز

داخل کدی مثل این

std::string List::GetName() const
{
    return name;
}

چرا تابع بصورت const تعریف شده ؟

سوال شده فروردین 17, 1393  بوسیله ی saleh110 (امتیاز 70)   2 11 16

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

برای اینکه نمونه هایی constی که از اون کلاس ساختیم به مشکل نخورن .

این کد رو نگاه کن و کامپایل کن :

#include <iostream>
using namespace std;

class A
{
public:
    void Foo (void) 
    {
        cout<<"Foo()"<<endl;
    }
};

int main(int argc,char* argv[])
{
    A obj;
    obj.Foo();

    const A obj2;
    obj2.Foo();
}

وقتی که برنامه رو کامپایل میکنی میبینی که چون شی obj2 یک شی const هست و متد ()Foo یک متد const نیست کامپایل با خطا مواجه میشه .

و حالا این کد رو نگاه کن و کامپایل کن :

#include <iostream>
using namespace std;

class A
{
public:
    void Foo (void) const 
    {
        cout<<"Foo()"<<endl;
    }
};

int main(int argc,char* argv[])
{
    A obj;
    obj.Foo();

    const A obj2;
    obj2.Foo();
}
پاسخ داده شده فروردین 18, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد فروردین 21, 1393 بوسیله ی BlueBlade
...