c++ 中冒号(:)和双冒号(::)的使用

来源:互联网 发布:js省市区三级联动菜单 编辑:程序博客网 时间:2024/06/05 11:44

最近在学习类的继承与派生过程中经常涉及到类的定义,继承,引用,有时候一不小心就会出错,比如:和::的使用。


比如我们定义如上的多边形类Polygon,包含name,num,area,还有初始化函数,打印函数。

15行的单冒号代表继承,即Triangle类继承至Polygon类。

19行的单冒号用于赋值,用于初始化函数中对类成员进行赋值。

19行的双冒号代表该函数属于Polygon类,当我们需要在类的外面定义一个函数时,需要声明该函数属于哪个类。

main函数中使用了两个打印函数,为什么使用的方法不一样呢?一个用的是点,一个则用双冒号。我们需要注意到,虽然我们调用的都是类的成员函数,但如果我们先声明一个对象再来调用,如A,则使用A.XX函数。如果我们未声明一个对象,直接使用类来调用,比如Polygon::XXX函数,则使用双冒号。值得注意的是,未经声明即可调用的必须是静态函数才行。

总结来讲,单冒号用于继承和初始化的赋值,双冒号用于类之外函数的定义以及直接使用类调用静态类成员函数。

0 0