国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++】靜態(tài)成員函數(shù) ( 靜態(tài)成員函數(shù)概念 | 靜態(tài)成員函數(shù)聲明 | 靜態(tài)成員函數(shù)訪問(wèn) | 靜態(tài)成員函數(shù)只能訪問(wèn)靜態(tài)成員 )

這篇具有很好參考價(jià)值的文章主要介紹了【C++】靜態(tài)成員函數(shù) ( 靜態(tài)成員函數(shù)概念 | 靜態(tài)成員函數(shù)聲明 | 靜態(tài)成員函數(shù)訪問(wèn) | 靜態(tài)成員函數(shù)只能訪問(wèn)靜態(tài)成員 )。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。





一、靜態(tài)成員函數(shù)簡(jiǎn)介




1、靜態(tài)成員函數(shù)概念


靜態(tài)成員函數(shù)歸屬 : 在 C++ 類中 , 靜態(tài)成員函數(shù) 是一種 特殊的函數(shù) , 該函數(shù)屬于類 , 而不是屬于 類實(shí)例對(duì)象 ;

靜態(tài)成員函數(shù)調(diào)用不依賴于對(duì)象 : 即使 沒(méi)有創(chuàng)建 類 的 實(shí)例對(duì)象 , 也可以 通過(guò) 類名:: 調(diào)用 類中定義的 靜態(tài)成員函數(shù) ;


靜態(tài)成員函數(shù)作用 : 靜態(tài)成員函數(shù) 通常用于 執(zhí)行與類本身相關(guān)的操作 , 執(zhí)行該函數(shù) 不涉及到 類實(shí)例對(duì)象中的信息 , 也不能在 靜態(tài)成員函數(shù) 中訪問(wèn) 普通的 成員變量 和 成員函數(shù) ;


2、靜態(tài)成員函數(shù)聲明


靜態(tài)成員函數(shù)聲明 : 使用 static 關(guān)鍵字 修飾 成員函數(shù) , 就可以將 普通的成員函數(shù) 轉(zhuǎn)為 靜態(tài)成員函數(shù) ;

如 : 下面的 void fun() 普通成員函數(shù) , 在 函數(shù)之前添加 static 關(guān)鍵字 , static void fun() 就變成了 靜態(tài)成員函數(shù) ;

class Student
{
public:
	static void fun()
	{
		cout << "靜態(tài)成員函數(shù)被調(diào)用 : number = " << number << endl;
	}
};

3、靜態(tài)成員函數(shù)訪問(wèn)


靜態(tài)成員函數(shù)訪問(wèn) :

  • 使用 類名 和 域操作符 訪問(wèn) :
	// 通過(guò) 類名:: 調(diào)用 靜態(tài)成員函數(shù)
	Student::fun();
  • 使用 對(duì)象 訪問(wèn) :
	// 通過(guò) 對(duì)象. 調(diào)用 靜態(tài)成員函數(shù)
	s.fun();

4、靜態(tài)成員函數(shù)只能訪問(wèn)靜態(tài)成員


靜態(tài)成員函數(shù)內(nèi)容要求 : 靜態(tài)成員函數(shù) 只能訪問(wèn)

  • 靜態(tài)成員變量
  • 其他靜態(tài)成員函數(shù)

靜態(tài)成員函數(shù) 不能訪問(wèn) 非靜態(tài)成員變量 或 非靜態(tài)成員函數(shù) ,

普通的 成員變量 和 成員函數(shù) , 需要 通過(guò) 類 的 實(shí)例對(duì)象 來(lái)訪問(wèn) , 需要 依托于 對(duì)象才能存在 ,

而 靜態(tài)成員函數(shù) 可以在 不創(chuàng)建 實(shí)例對(duì)象的前提下被調(diào)用 , 因此 靜態(tài)成員函數(shù)中 不能訪問(wèn) 非靜態(tài)成員 ;


如果在靜態(tài)成員函數(shù)中 , 訪問(wèn)非靜態(tài)成員 , 會(huì)報(bào)如下錯(cuò)誤 :

1>------ 已啟動(dòng)生成: 項(xiàng)目: HelloWorld, 配置: Debug Win32 ------
1>Hello.cpp
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(22,3): error C2597: 對(duì)非靜態(tài)成員“Student::m_age”的非法引用
1>已完成生成項(xiàng)目“HelloWorld.vcxproj”的操作 - 失敗。
========== 生成: 成功 0 個(gè),失敗 1 個(gè),最新 0 個(gè),跳過(guò) 0 個(gè) ==========

靜態(tài)成員函數(shù),C++,c++,靜態(tài)成員,靜態(tài)成員函數(shù),靜態(tài)成員變量





二、代碼示例 - 靜態(tài)成員函數(shù)



下面的代碼 , 是在 之前 的 靜態(tài)成員變量 示例代碼的基礎(chǔ)上 進(jìn)行的 ;

在 Student 類中定義靜態(tài)成員函數(shù) , 使用 static 關(guān)鍵字修飾函數(shù) ;

注意 : 不要在 靜態(tài)函數(shù)中 訪問(wèn) 非靜態(tài)成員 , 否則會(huì)報(bào)錯(cuò) " 對(duì)非靜態(tài)成員“Student::m_age”的非法引用 " ;

	static void fun()
	{
		// 靜態(tài)成員函數(shù) 中 訪問(wèn)非靜態(tài)成員會(huì)報(bào)錯(cuò)
		// error C2597: 對(duì)非靜態(tài)成員“Student::m_age”的非法引用
		//m_age = 10;
		cout << "靜態(tài)成員函數(shù)被調(diào)用 : number = " << number << endl;
	}

訪問(wèn) 類的 靜態(tài)成員函數(shù) 時(shí) , 可以使用 類名:: 調(diào)用 靜態(tài)成員函數(shù) ;

	// 通過(guò) 類名:: 調(diào)用 靜態(tài)成員函數(shù)
	Student::fun();

還可以使用 對(duì)象. 調(diào)用 靜態(tài)成員函數(shù) ;

	// 通過(guò) 對(duì)象. 調(diào)用 靜態(tài)成員函數(shù)
	s.fun();

代碼示例 :

#include "iostream"
using namespace std;

class Student
{
public:
	// 帶參構(gòu)造函數(shù)
	Student(int age, int height)
	{
		m_age = age;
		m_height = height;
		cout << "執(zhí)行 Student 的構(gòu)造函數(shù)" << endl;
	}

	~Student()
	{
		cout << "執(zhí)行 Student 的析構(gòu)函數(shù)" << endl;
	}

	static void fun()
	{
		// 靜態(tài)成員函數(shù) 中 訪問(wèn)非靜態(tài)成員會(huì)報(bào)錯(cuò)
		// error C2597: 對(duì)非靜態(tài)成員“Student::m_age”的非法引用
		//m_age = 10;
		cout << "靜態(tài)成員函數(shù)被調(diào)用 : number = " << number << endl;
	}

public:
	int m_age;		// 年齡
	int m_height;	// 身高

	// 在類內(nèi)部定義靜態(tài)成員
	static int number;
};

// 在類外部初始化靜態(tài)成員變量  
int Student::number = 1;

int main() {


	// I. 靜態(tài)成員變量


	// 使用 域操作符 訪問(wèn) 類靜態(tài)成員變量
	// 類名::靜態(tài)成員變量名
	cout << "Student::number = " << Student::number << endl;

	// 在函數(shù)中為 類 靜態(tài)成員變量 賦值
	Student::number = 2;

	// 創(chuàng)建 Student 類型對(duì)象
	Student s(10, 150);

	// 使用 對(duì)象 訪問(wèn) 類靜態(tài)成員變量
	// 對(duì)象名稱.靜態(tài)成員變量名
	cout << "s.number = " << s.number << endl;


	// II. 靜態(tài)成員函數(shù)


	// 通過(guò) 類名:: 調(diào)用 靜態(tài)成員函數(shù)
	Student::fun();

	// 通過(guò) 對(duì)象. 調(diào)用 靜態(tài)成員函數(shù)
	s.fun();

    // 控制臺(tái)暫停 , 按任意鍵繼續(xù)向后執(zhí)行
    system("pause");

    return 0;
}

執(zhí)行結(jié)果 :

Student::number = 1
執(zhí)行 Student 的構(gòu)造函數(shù)
s.number = 2
靜態(tài)成員函數(shù)被調(diào)用 : number = 2
靜態(tài)成員函數(shù)被調(diào)用 : number = 2
請(qǐng)按任意鍵繼續(xù). . .

靜態(tài)成員函數(shù),C++,c++,靜態(tài)成員,靜態(tài)成員函數(shù),靜態(tài)成員變量文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-810623.html

到了這里,關(guān)于【C++】靜態(tài)成員函數(shù) ( 靜態(tài)成員函數(shù)概念 | 靜態(tài)成員函數(shù)聲明 | 靜態(tài)成員函數(shù)訪問(wèn) | 靜態(tài)成員函數(shù)只能訪問(wèn)靜態(tài)成員 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 17. C++ static、const 和 static const 類型成員變量聲明以及初始化

    1. C++ static、const 和 static const 類型成員變量聲明以及初始化 const 定義的常量在超出其作用域之后其空間會(huì)被釋放; static 定義的靜態(tài)常量在函數(shù)執(zhí)行后不會(huì)釋放其存儲(chǔ)空間; 1.2 static static 表示的是靜態(tài)的 類的靜態(tài)成員函數(shù)、靜態(tài)成員變量是和類相關(guān)的,而不是和類的具體對(duì)

    2024年01月18日
    瀏覽(53)
  • 【Kotlin】Kotlin 與 Java 互操作 ② ( @JvmField 注解字段給 Java | @JvmOverloads 注解修飾函數(shù) | @JvmStatic 注解聲明靜態(tài)成員 )

    【Kotlin】Kotlin 與 Java 互操作 ② ( @JvmField 注解字段給 Java | @JvmOverloads 注解修飾函數(shù) | @JvmStatic 注解聲明靜態(tài)成員 )

    在 Java 中是 不能直接訪問(wèn) Kotlin 中的字段 的 , 必須 調(diào)用相應(yīng)的 Getter 和 Setter 方法 , 才能進(jìn)行訪問(wèn) ; 代碼示例 : Kotlin 類 : 在 Kotlin 中聲明的成員屬性 , 默認(rèn)就是 private 私有屬性 , 默認(rèn)為其生成了 Getter 和 Setter 方法 ; Java 類直接調(diào)用 : 在 Java 類中 , 不能直接調(diào)用 Kotlin 字段 ; 在

    2024年02月02日
    瀏覽(15)
  • 4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    我們知道在c++11中才能在成員對(duì)象聲明時(shí)初始化,像下面這樣。 注意:構(gòu)造函數(shù)不是初始化,而是賦初始值。那么在c++11以前該怎么初始化成員變量呢? 每個(gè)成員變量在初始化列表中只能出現(xiàn)一次(初始化只能初始化一次) 類中包含以下成員,必須放在初始化列表位置進(jìn)行初始

    2024年01月20日
    瀏覽(29)
  • C++編譯靜態(tài)成員函數(shù)報(bào)錯(cuò): “osgGA::DriveManipulator::setEye”: 非靜態(tài)成員函數(shù)的非法調(diào)用

    C++編譯靜態(tài)成員函數(shù)報(bào)錯(cuò): “osgGA::DriveManipulator::setEye”: 非靜態(tài)成員函數(shù)的非法調(diào)用

    來(lái)看代碼 但是會(huì)報(bào)錯(cuò),說(shuō)引用錯(cuò)誤。 這是因?yàn)榘裞omputePosition函數(shù)定義為 static 引起的。 解決辦法: computePosition函數(shù)定義為 static 不能更改了(我的代碼需求,static必須存在),所以要在它內(nèi)部使用,需要把其它函數(shù)也改成靜態(tài)的。 更改如下: 關(guān)于.cpp文件那兩行應(yīng)該放在哪

    2024年02月09日
    瀏覽(25)
  • C++:常成員變量、常成員函數(shù)、常對(duì)象

    C++:常成員變量、常成員函數(shù)、常對(duì)象

    常成員變量: 1.用const修飾,可位于類型前后,若是成員變量類型為指針則只可位于類型后。 即:int? *const? p; 2.只能通過(guò)構(gòu)造函數(shù)的初始化表對(duì)常成員變量進(jìn)行初始化。 3.常成員所在類中的所有構(gòu)造函數(shù)都必須對(duì)常成員變量初始化(通過(guò)初始化表)。 4.常成員變量可以被訪

    2024年02月11日
    瀏覽(34)
  • MFC使用友元函數(shù)訪問(wèn)窗體類成員變量

    首先創(chuàng)建一個(gè)窗體類指針的全局變量 在窗體類的OnInitDialog函數(shù)中將指針賦值this,在OnInitDialog中窗體已經(jīng)創(chuàng)建完成。這樣指針就可以指向窗體實(shí)例

    2024年02月07日
    瀏覽(19)
  • 【C++】繼承的基本特性(定義,賦值轉(zhuǎn)換,友元,靜態(tài)成員,虛擬繼承,默認(rèn)成員函數(shù),作用域)

    【C++】繼承的基本特性(定義,賦值轉(zhuǎn)換,友元,靜態(tài)成員,虛擬繼承,默認(rèn)成員函數(shù),作用域)

    ??博客主頁(yè): 主頁(yè) ??系列專欄: C++ ??感謝大家點(diǎn)贊??收藏?評(píng)論?? ??期待與大家一起進(jìn)步! 它允許程序員在保持原有類特性的基礎(chǔ)上進(jìn)行擴(kuò)展,增加功能,這樣產(chǎn)生新的類,稱派生類。 Person是父類,也稱作基類。Student是子類,也稱作派生類 總結(jié): 基類private成員

    2024年02月14日
    瀏覽(22)
  • C++聲明extern變量和extern函數(shù)的用法

    目錄 ?一、?聲明extern變量 1、 如何聲明 2、在何處聲明 3、在何處初始化 4、在何處調(diào)用 5、舉例聲明extern變量 (1)、聲明extern變量的test.h文件 (2)、初始化extern變量的test.cpp文件 (3)、調(diào)用extern變量的main.cpp文件 二、聲明extern函數(shù) 1、 如何聲明 2、在何處聲明 3、在何處定

    2024年02月15日
    瀏覽(22)
  • 面向?qū)ο蟆境蓡T變量與局部變量、方法聲明與作用】

    面向?qū)ο蟆境蓡T變量與局部變量、方法聲明與作用】

    Java中的成員變量是指 類中聲明的變量 ,也稱為實(shí)例變量或?qū)傩浴K鼈兣c方法一樣屬于類的成員,不同之處在于,它們存儲(chǔ)在對(duì)象(堆)中而不是棧中,并且每個(gè)對(duì)象都有自己的一組值。 成員變量可以用來(lái)描述一個(gè)對(duì)象的狀態(tài),例如人的年齡、學(xué)生的姓名等。它們可以具有pub

    2024年02月10日
    瀏覽(32)
  • 【C++】類與對(duì)象——六個(gè)默認(rèn)成員函數(shù)、構(gòu)造函數(shù)的概念和特征,析構(gòu)函數(shù)的概念和特征

    【C++】類與對(duì)象——六個(gè)默認(rèn)成員函數(shù)、構(gòu)造函數(shù)的概念和特征,析構(gòu)函數(shù)的概念和特征

    ??如果一個(gè)類中什么成員都沒(méi)有,簡(jiǎn)稱為空類。 ??空類中真的什么都沒(méi)有嗎? ??并不是,任何類在什么都不寫時(shí),編譯器會(huì)自動(dòng)生成以下6個(gè)默認(rèn)成員函數(shù)。 默認(rèn)成員函數(shù):用戶沒(méi)有顯式實(shí)現(xiàn),編譯器會(huì)生成的成員函數(shù)稱為默認(rèn)成員函數(shù)。 ? ??構(gòu)造函數(shù)是C++中的一

    2024年02月06日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包