C++双冒号::的作用

  1. 作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分
    如:A,B表示两个类,在A,B中都有成员member。那么
          A::member就表示类A中的成员member
          B::member就表示类B中的成员member
  2. 全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:

    char    zhou;    //全局变量

    void    sleep()

    char    zhou;    //局部变量

    char(局部变量) = char(局部变量) *char(局部变量) ;

    ::char(全局变量) =::char(全局变量) *char(局部变量);

  3. ::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如
 1 class CA
 2 {
 3  public:
 4       int ca_var;
 5       int add(int a, int b);
 6       int add(int a);
 7 };
 8
 9 //那么在实现这个函数时,必须这样写
10 int CA::add(int a, int b)
11 {
12        return a + b;
13 }
14
15 //另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示,比如:
16 int CA::add(int a)
17 {
18        return a + ::ca_var_;  //表示当前类实例中的变量ca_var.
19 }
时间: 2024-10-29 00:27:29

C++双冒号::的作用的相关文章

numpy中双冒号的作用

1 import numpy as np 2 a = np.array([[1, 2, 3, 1, 3, 5], [4, 5, 6, 2, 4, 3]]) 3 print('a') 4 print(a) 5 print(a[:, 0::2]) 6 7 # a 8 # [[1 2 3 1 3 5] 9 # [4 5 6 2 4 3]] 10 # [[1 3 3] 11 # [4 6 4]] 12 13 b = np.array([[1, 2, 3, 1, 3, 5], [4, 5, 6, 2, 4

解决Hibernate不支持PostgreSQL中双冒号(::)的Bug

在PostgreSQL中,双冒号(::)的作用是类型转换,而在Hibernate中,SQL中冒号的作用是命名参数,用于SQL中命名参数的匹配,这时,当在PostgreSQL数据库环境中,正常的SQL本身包括双冒号时,通过Hibernate进行查询就会报错,这个应该是Hibernate的一个Bug,怎么解决呢,本文将给出方案. 通过研究Hibernate的源代码,发现了问题所在,问题出在org.hibernate.engine.query.spi.ParameterParser,这个类构造方法为私

C++中的双冒号作用

1. 作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分 如:A,B表示两个类,在A,B中都有成员member.那么 A::member就表示类A中的成员member B::member就表示类B中的成员member 2. 全局作用域符号: 例如: #include <stdio.h> int count = 0; //全局变量 0 void main() { int count = 10; //局部变量10 print

转载——c++中冒号(:)和双冒号(::)的用法

1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; XXX (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. struct _XXX{ _XXX() : y(0xc0) {} }; (3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"pub

[email&#160;protected]冒号(:)和双冒号(::)的用法

转自:http://blog.csdn.net/zimingjushi/article/details/6549390 1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{unsigned char a:4;unsigned char c;} ; XXX (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. struct _XXX{_XXX() : y(0xc0) {}};

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

1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; XXX (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. struct _XXX{ _XXX() : y(0xc0) {} }; (3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"pub

c++中的点号(.),冒号(:)和双冒号(::)运算符

1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4;  //char型的字符a占4位 unsigned char c; } XXX; (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. struct _XXX{ _XXX() : y(0xc0) { } }; (3) public:和private:后面的冒号,表示后面定义的所有成员都是

wind的R接口、况客RSDK学习,双冒号以及quantmod主题

本文主要参考:来自segmentfault上的FinanceR的专栏 https://segmentfault.com/a/1190000004580610 并自己对生疏不解之处做了补充和注释. 当然,况客的R SDK的强大之处在于,你注册账号,进入网站的控制台后,会直接在浏览器模拟出一个RStudio的页面,可以直接运行操作,还可以设置. 而对于的qutke包,托管于github,所谓的API,应当就是指这个包的用法. 每个人会分配一个私钥. 个人感觉,现在他仅仅是提供了一个浏览器平台,以及数

“::before”和“:before”中的双冒号和单冒号的区别

伪类 伪元素 css3 为了区分伪类和伪元素两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示.对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的. 你的网站只需要兼容webkit.firefox.opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全.如果自己不确定的话可以针对某些需要兼容的属性有两种属性 原文地址:https://www.cnblogs.com/yogi