表示作用域,和所属关系。
比如一个A类:
存在一个函数test是属于A的,如下:
关于::的具体解析:
::是运算符中等级最高的,它分为三种:
1)global scope(全局作用域符),用法(::name)。
2)class scope(类作用域符),用法(class::name)。
3)namespace scope(命名空间作用域符),用法(namespace::name)。
都是左关联(left-associativity),作用都是为了更明确的调用想要的变量。
如在程序中的某一处想调用全局变量a,那么就写成::a,如果想调用class A中的成员变量a,那么就写成A::a,另外一个如果想调用namespace std中的cout成员,就写成std::cout意思是在这里想用cout对象是命名空间std中的cout。
扩展资料:
C++中"std::":
std是一个类(输入输出标准),它包括了cin成员和cout成员,using name space std ,以后才能使用它的成员。其工作原理:
程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
参考资料:
::是运算符中等级最高的,它有三种含义:
1)global scope(全局作用域符),用法(::name)
int a;
void test ()
{
int a = ::a;//用全局变量a,给本地变量a赋值
}
2)class scope(类作用域符),用法(class::name)
class A
{
public:
int test();
}
int A::test()//表示test是属于A的
{
return 0;
}
3)namespace scope(命名空间作用域符),用法(namespace::name)
std::cout<<"test"<<std::endl;
扩展资料:
C++语言特点
支持数据封装和数据隐藏
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。
完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
支持多态性
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。
当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
参考资料来源:百度百科--C++
参考资料来源:百度百科--C语言
1、类作用域操作符
“::”指明了成员函数所属的类,例如:M::f(s)就表示f(s)是类M的成员函数。
2、表示“域操作符”
例如:声明了一个类A,类A里声明了一个成员函数void f( ),但没有在类的声明里给出f的定义,那么在类外定义f时, 就要写成void A::f( ),表示这个f( )函数是类A的成员函数。
3、表示引用成员函数及变量,作用域成员运算符。
比:System::Math::Sqrt( ) 相当于System.Math.Sqrt( )
扩展资料
C++中的::的作用
1、作用域限定符,当在类体中直接定义函数时,不需要在函数名字前加上类名,但在类体外实现函数定义的时候,必须加上类名并且加上作用域限定符。Student::Display( );
2、静态数据成员既可以通过对象名引用,也可以通过类名加::来引用。
例如:
class Test
{
public:
Display();
private:
static int a;
}
Test::a;
3、静态成员函数,也是既可以通过对象名引用,也可以通过类名+::引用。
4、引用在类中定义的 typedef新类型。
例如:
class MyClass
{
public:
typedef int INT;
}
参考资料:百度百科-C++
1)global scope(全局作用域符),用法(::name)
2)class scope(类作用域符),用法(class::name)
3)namespace scope(命名空间作用域符),用法(namespace::name)
他们都是左关联(left-associativity)
他们的作用都是为了更明确的调用你想要的变量,如在程序中的某一处你想调用全局变量a,那么就写成::a,如果想调用class A中的成员变量a,那么就写成A::a,另外一个如果想调用namespace std中的cout成员,你就写成std::cout(相当于using namespace
std;cout)意思是在这里我想用cout对象是命名空间std中的cout(即就是标准库里边的cout)
他们算是C++中的基础,如果运用的好的话,你程序的出错率也许会降很多,o~~~~~~~~~