c++语言中的 :: 是什么意思?

如题所述

双冒号“::”(域作用符)用在没有实例化类对象的时候直接从类接口访问内部成员的情况下。比如定义一个MyClass类,其中有myfunc1()这个public static方法,那么你可以使用MyClass::myfunc1()来调用myfunc1()。

单点“.”(成员操作符)用在已经存在实例化的类对象的时候从类的实例访问类内部成员的情况下。比如同上定义的MyClass类,其中又有一个myfunc2()这个public方法,此时如果有一个MyClass类型的变量mycls,那么可以使用mycls.myfunc2()直接调用myfunc2()方法。

类的继承中只能用双冒号是因为在继承类的时候只有一个类的定义,而此定义并没有被实例化(即没有被声明成某个变量),如上所述,在没有实例化的情况下只能使用双冒号来访问类成员。
这同时也是为什么在类中定义的类全局变量只能在类定义域之外使用双冒号来赋予初始值而不能在类定义域内部直接初始化的原因。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-02
  “::”类作用域操作符。“::”指明了成员函数所属的类。如:M::f(s)就表示f(s)是类M的成员函数。
  C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。
第2个回答  推荐于2018-03-01
::是域作用符,表示后面的函数或者变量属于某一个域,从而决定函数或者变量的作用域以及可见性!
例如 class student
{
public:
student();
private:
char *name;
};
student::student()//表明函数student()是类student的构造函数
{}
当表示成::A时则A是一个全局变量,或者函数。
std::cout表示下面的程序中将用到标准库函数中的cout,cout在标准名字空间std中有定义!本回答被提问者和网友采纳
第3个回答  2019-04-22
既支持过程化程序设计,又支持面向对象程序设计,还支持泛型程序设计。顺便提一句,C++工程师的工资是程序员中最高的。
相似回答