真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++中的static函數(shù)和const函數(shù)-創(chuàng)新互聯(lián)

C++中的static函數(shù)和const函數(shù)

超過十多年行業(yè)經(jīng)驗,技術領先,服務至上的經(jīng)營模式,全靠網(wǎng)絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務范圍包括了:成都網(wǎng)站設計、成都網(wǎng)站建設,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡托管,小程序制作,微信開發(fā),app軟件開發(fā)公司,同時也可以讓客戶的網(wǎng)站和網(wǎng)絡營銷和我們一樣獲得訂單和生意!一、static特點

1.這樣的函數(shù)只能在本文件中被調(diào)用
2.在同–源程序中其他文件可以定義同名的函數(shù)

#includeusing namespace std;
//static的作用:1). 在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。
//2). 在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。
//3). 在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那
	class Std{public:
		Std()//構(gòu)造函數(shù)
		{	cout<<__func__<<":"<<__LINE__<	cout<<__func__<<":"<<__LINE__<	cout<<__func__<<":"<<__LINE__<this->val=val;
	return;
	}
	int getval()
	{return this->val;
	}
	static int getmyval()//static靜態(tài)變量的訪問接口
	{return myval;
	}
	static int *myvaladdr()
	{return &myval;
	}
	private:
	int val;
	static int myval;//靜態(tài)成員變量,類的成員,與對象無關
	};
	 int Std::myval=123;//static成員變量使用前必須在類的外部聲明定義初始化

int main(int argc, char *argv[])
{Std obj;
	obj.setval(10);
cout<
二.C中const關鍵字的用法
1)修飾變量,變量是只讀變量,即變量只能初始化,不能被修改
	eg:
const int val = 123;//初始化
			val = 321;//error
2)const修飾指針
const int *p;//不能通過指針p修改p指向的內(nèi)容 等價:int const *p;
		int * const p;//不能修改p的指向
		const int * const p;//既不能通過指針p修改p指向的內(nèi)容,也不能修改p的指向

2.C++中const用法
1)const修飾成員變量:必須使用初始化列表初始化
例:

#includeusing namespace std;

    class Demo{public:
            Demo(int val=0,int val1=0) : val1(val1),val(val)  //使用初始化列表對成員變量val val1初始化
            {this->val = val;//賦值
                //this->val1 = val1; //const成員是只讀的,只能初始化,不能修改
                cout<< __func__<< ":"<< __LINE__<< endl;
            }

            ~Demo()
            {cout<< __func__<< ":"<< __LINE__<< endl;
            }
        public:
            void setval(int val)
            {this->val = val;

                return ;
            }

            int getval()
            {   
                return this->val;
            }

            int getval1() 
            {return this->val1;
            }

        private:
            int val;
            const int val1;//const成員變量
			
    };


    int main()
    {Demo obj(123,321);
        cout<< obj.getval1()<< endl;

        return 0;
    }
2)const修飾成員方法: 不能通過此方法修改對象
	即:
		const方法只能調(diào)用const方法
		const方法不能調(diào)用非const方法
		const方法可以修改static成員變量
例:
#includeusing namespace std;

class Demo{public:
        Demo(int val=0,int val1=0) : val1(val1),val(val)  //使用初始化列表對成員變量val val1初始化 重點:不能通過初始化列表對static成員變量初始化
        {this->val = val;//賦值
            //this->val1 = val1; //const成員是只讀的,只能初始化,不能修改
            cout<< __func__<< ":"<< __LINE__<< endl;
        }

        ~Demo()
        {cout<< __func__<< ":"<< __LINE__<< endl;
        }
    public:
        void setval(int val)
        {this->val = val;

            return ;
        }

        int getval() const  //const成員方法:不能修改類對象
        {//val++;//error 
            //setval(666);//error 原因:const方法不能調(diào)用非const方法,因為非const方法有可能修改類對象
            getval1();//right 原因:const方法可以調(diào)用const方法
            myval++;//right 原因:myval是static成員,不屬于對象
            return this->val;
        }

        int getval1() const
        {return this->val1;
        }

    private:
        int val;
        const int val1;//const成員變量
		static int myval;
};
int Demo::myval = 123;

int main()
{Demo obj(123,321);
    cout<< obj.getval1()<< endl;

    return 0;
}
3)const修飾對象:表示對象是只讀,即對象不能被修改
	const對象只能調(diào)用const方法
	const對象也可以調(diào)用static方法
	const對象不能調(diào)用非const方法
	
	eg:
#includeusing namespace std;

        class Demo{public:
                Demo(int val=0,int val1=0) : val1(val1) //使用初始化列表對成員變量val val1初始化
                {this->val = val;//賦值
                    //this->val1 = val1; //const成員是只讀的,只能初始化,不能修改
                    cout<< __func__<< ":"<< __LINE__<< endl;
                }

                ~Demo()
                {cout<< __func__<< ":"<< __LINE__<< endl;
                }
            public:
                void setval(int val)
                {this->val = val;

                    return ;
                }

                int getval() const  //const成員方法:不能修改類對象
                {//val++;//error 
                    myval++;//right 原因:myval是static成員
                    return this->val;
                }

                int getval1() const
                {return this->val1;
                }

                static int getmyval()
                {return myval;
                }

            private:
                int val;
                const int val1;//const成員變量
                static int myval;//static成員

        };

        int Demo::myval = 123;

        int main()
        {const Demo obj;//const對象

            //obj.setval(666);//error obj是const對象,只能調(diào)用const方法

            cout<< obj.getval()<< endl;//right const對象可以調(diào)用const方法
            cout<< obj.getmyval()<< endl;//right getmyval()是static方法,是類的成員

            return 0;
        }

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站名稱:C++中的static函數(shù)和const函數(shù)-創(chuàng)新互聯(lián)
本文路徑:http://weahome.cn/article/ijsoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部