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