目录
一,C语言可见性
在C语言存储类别、存储区一文中我总结了C语言中变量的可见性(作用域、链接属性)
除了变量,函数、类型、宏等也有可见性,他们的可见性只取决于作用域,而他们的作用域都是文件作用域。
PS:不能在函数内定义函数,只能在文件内定义,函数的作用域只能是文件作用域。
宏可以在函数内、块内定义,但是作用域仍然是文件(从定义到文件尾)。
二,C++可见性
C++的作用域,除了块作用域、文件作用域、函数作用域、函数原型作用域之外,还有命名空间作用域、类作用域。
类的成员也有链接属性,有静态函数和静态成员变量。
除了作用域和链接属性,类还有访问控制的关键字,public, private, protect, friend
三,嵌套类、内部类
一般类的作用域都是命名空间或者文件,但是类就像普通的int变量一样,可以在类里面定义,也可以在块内定义。
类里面定义类,叫嵌套类。
块里面定义类,叫内部类。