作用域:是標(biāo)識(shí)符(變量、常量、類、對(duì)象、函數(shù)等)的有效范圍;可見性:標(biāo)識(shí)符是否可以引用的問(wèn)題;塊是一對(duì)花括號(hào)括起來(lái)的一段程序單元。在塊中聲明的標(biāo)識(shí)符,其作用域從聲明處開始,直到塊結(jié)束的右花括號(hào)。
標(biāo)識(shí)符應(yīng)聲明在先,引用在后。在同一作用域中,不能聲明同名的標(biāo)識(shí)符。
如果某個(gè)標(biāo)識(shí)符在外層中聲明,且在內(nèi)層中沒(méi)有同一標(biāo)識(shí)符的聲明,則該標(biāo)識(shí)符在內(nèi)層可見。對(duì)于兩個(gè)嵌套的作用域,如果在內(nèi)層作用域內(nèi)聲明了與外層作用域中同名的標(biāo)識(shí)符,則外層作用域的標(biāo)識(shí)符在內(nèi)層不可見。
作用域可見性的一般規(guī)則:標(biāo)識(shí)符應(yīng)聲明在先,引用在后。
在同一作用域中,不能聲明同名的標(biāo)識(shí)符。
如果某個(gè)標(biāo)識(shí)符在外層中聲明,且在內(nèi)層中沒(méi)有同一標(biāo)識(shí)符的聲明,則該標(biāo)識(shí)符在內(nèi)層可見。
對(duì)于兩個(gè)嵌套的作用域,如果在內(nèi)層作用域內(nèi)聲明了與外層作用域中同名的標(biāo)識(shí)符,則外層作用域的標(biāo)識(shí)符在內(nèi)層不可見。友元友元是C++提供的一種破壞數(shù)據(jù)封裝和數(shù)據(jù)隱藏的機(jī)制。
通過(guò)將一個(gè)模塊聲明為另一個(gè)模塊的友元,一個(gè)模塊能夠引用到另一個(gè)模塊中本是被隱藏的private 和 protected信息。
可以使用友元函數(shù)和友元類。
為了確保數(shù)據(jù)的完整性,及數(shù)據(jù)封裝與隱藏的原則,建議盡量不使用或少使用友元。友元函數(shù)是在類聲明中由關(guān)鍵字friend修飾說(shuō)明的非成員函數(shù),在它的函數(shù)體中能夠通過(guò)對(duì)象名訪問(wèn) private 和 protected成員
作用:增加靈活性,使程序員可以在封裝和快速性方面做合理選擇。
訪問(wèn)對(duì)象中的成員必須通過(guò)對(duì)象名。