浅谈c++中“::”和“:” 冒号的意思

(1) “::”

1)类作用域操作符。“::”指明了成员函数所属的类。

如:M::f(s)就表示f(s)是类M的成员函数。

2)表示域操作符。

如:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出 f 的定义,那么在类外定义 f 时, 就要写成void A::f(),表示这个f()函数是类A的成员函数。

3)命名空间作用域符。用法(namespace::name) ,作用是为了更明确的调用想要的变量。

如:

在程序中的某一处想调用全局变量a,那么就写成::a,
 如果想调用class A中的成员变量a,那么就写成A::a,
 如果想调用namespace std中的cout成员,就写成std::cout(相当于using namespace std;cout)意思是 在这里想用的cout对象是命名空间std中的cout(即标准库里的cout)

4)表示引用成员函数及变量,作用域成员运算符

例:System::Math::Sqrt() 相当于System.Math.Sqrt()

(2) “:”

1)表示机构内位域的定义(即该变量占几个bit空间)

typedef struct _XXX{

  unsigned char a:4;

  unsigned char c;

}; XXX

2)构造函数后加冒号是初始化表达式:

iStack( int capacity ) : _stack( capacity ), _top( 0 ) { } 

//冒号后面的内容是初始化类的数据成员 _top;_stack;

//也可以这样写

iStack( int capacity ){

  _stack( capacity );

  _top( 0 );
}

3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:  ”或"private:  ”出现为止。"private:"为默认处理。

4)类名冒号后面的是用来定义类的继承。

class 派生类名 : 继承方式 基类名{
  派生类的成员
};

(继承方式:public、private和protected,默认处理是public )

到此这篇关于浅谈c++中“::”和“:” 冒号的意思的文章就介绍到这了,更多相关c++ 冒号 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

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

  • C++中双冒号::的作用浅析

    C++中经常使用的作用符::,作用如下: •作用域限定符.在类体内申明函数,并在类体外定义函数时,必须在定义函数时加上类名和作用域限定符. class MyClass{ public: int num; int fun();//类体内申明函数 }; //类体外定义函数 int MyClass::fun(){ return 1; } •静态数据和静态成员函数成员既可以通过对象名引用,也可以通过类名加::来引用.例如,MyClass::a.静态成员函数的目的就是为了操作静态数据成员,静态成员函数引用

  • 浅谈c++中“::”和“:” 冒号的意思

    (1) "::" 1)类作用域操作符."::"指明了成员函数所属的类. 如:M::f(s)就表示f(s)是类M的成员函数. 2)表示域操作符. 如:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出 f 的定义,那么在类外定义 f 时, 就要写成void A::f(),表示这个f()函数是类A的成员函数. 3)命名空间作用域符.用法(namespace::name) ,作用是为了更明确的调用想要的变量. 如: 在程序中的某一处想调用全局

  • 浅谈javascript中关于日期和时间的基础知识

    前面的话 在介绍Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于更好地理解javascript中的Date对象.本文将介绍javascript关于日期和时间的基础知识 标准时间一般而言的标准时间是指GMT和UTC,以前是GMT,现在是UTC GMT 格林尼治标准时间(GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线 理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空

  • 浅谈对Java双冒号::的理解

    本文为个人理解,不保证完全正确. 官方文档中将双冒号的用法分为4类,按照我的个人理解可以分成2类来使用. 官方文档 官方文档中将双冒号的用法分为了以下4类: 用法 举例 引用静态方法 ContainingClass::staticMethodName 引用特定对象的实例方法 containingObject::instanceMethodName 引用特定类型的任意对象的实例方法 ContainingType::methodName 引用构造函数 ClassName::new 以下是我的理解 个

  • 浅谈Angular中ngModel的$render

    在我开始着手ngModel的领域时候,有一个问题很令我纠结,那就是$render()到底是做什么的呢?查了很多资料都只是简单的描述一下,这就令我很纠结了,终于在一个阳光明媚的晚上,我终于解决了这个大问题 那么这个$render方法到底是干什么的呢?他的用处就是在$viewValue改变的时候可以重新绑定model数据,但是我们要注意一点($viewValue和DOM节点的value是不同的),我觉得他们的区别有点类似setTimeout和$timeout的区别,但是又不太一样.ps:其实mode

  • 浅谈Java中Unicode的编码和实现

    Unicode的编码和实现 大概来说,Unicode编码系统可分为编码方式和实现方式两个层次. 编码方式 字符是抽象的最小文本单位.它没有固定的形状(可能是一个字形),而且没有值."A"是一个字符,"€"也是一个字符.字符集是字符的集合.编码字符集是一个字符集,它为每一个字符分配一个唯一数字. Unicode 最初设计是作为一种固定宽度的 16 位字符编码.也就是每个字符占用2个字节.这样理论上一共最多可以表示216(即65536)个字符.上述16位统一码字符构成基

  • 浅谈python中copy和deepcopy中的区别

    在下是个编程爱好者,最近将魔爪伸向了Python编程.....遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy). 首先说一下deepcopy,所谓的深度复制,在这里我理解的是完全复制然后变成一个新的对象,复制的对象和被复制的对象没有任何关系,彼此之间无论怎么改变都相互不影响. 然后说一下copy,在这里我分为两类来说,一种是字典数据类型的copy函数,一种是copy包的copy函数. 一.字典数据类型的copy函数

  • 浅谈python中列表、字符串、字典的常用操作

    列表操作如此下: a = ["haha","xixi","baba"] 增:a.append[gg] a.insert[1,gg] 在下标为1的地方,新增 gg 删:a.remove(haha) 删除列表中从左往右,第一个匹配到的 haha del a.[0] 删除下标为0 对应的值 a.pop(0) 括号里不写内容,默认删除最后一个,写了,就删除对应下标的内容 改:a.[0] = "gg" 查:a[0] a.index(&q

  • 浅谈PHP中的数据传输CURL

    确认是否安装了CURL扩展 Linux下命令: [root@fengniu020 ~]# php -i | grep -i curl Additional .ini files parsed => /etc/php.d/curl.ini, curl cURL support => enabled cURL Information => 7.19.7 curl操作步骤解析: CURL实例 1.一个简单的curl,抓取百度首页 2.下载一个网页并把内容中的"百度"替换为&

  • 浅谈django中的认证与登录

    认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1  authenticate(**credentials)    提供了用户认证,即验证用户名以及密码是否正确 一般需要username  password两个关键字参数 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性标识那种认证后端认证了该用户,且该信息在后面的登录过程中是需要的.当我们试图登陆一个从数据库中直接取出来不经过authent

  • 浅谈Vim中的Tab与空格缩进

    vim缩进参数解析 缩进用 tab 制表符还是空格,个人爱好问题.但是在大多项目中,习惯使用空格.关于缩进,vim中可以通过如下四个参数进行配置 set tabstop=4 set softtabstop=4 set shiftwidth=4 set noexpandtab / expandtab1 解析: tabstop 表示按一个tab之后,显示出来的相当于几个空格,默认的是8个. softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度. shiftwidth 表示每一级缩

随机推荐