c++中冒号(:)和双冒号(::)的使用说明_C 语言

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

复制代码 代码如下:

typedef struct _XXX{
          unsigned char a:4;
          unsigned char c;
} ; XXX

(2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。

复制代码 代码如下:

struct _XXX{
          _XXX() : y(0xc0) {}
};

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

复制代码 代码如下:

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

继承方式:public、private和protected,默认处理是public。
2.双冒号(::)用法
(1)表示“域操作符”
例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,
就要写成void A::f(),表示这个f()函数是类A的成员函数。

(2)直接用在全局函数前,表示是全局函数
例:在VC里,你可以在调用API 函数里,在API函数名前加::

(3)表示引用成员函数及变量,作用域成员运算符
例:System::Math::Sqrt() 相当于System.Math.Sqrt()

VC中如下
::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。

:: 一般还有一种用法,就是直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,考试,大提示在类内定义的时候,打此函数名默认调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::。

时间: 2024-09-20 14:32:54

c++中冒号(:)和双冒号(::)的使用说明_C 语言的相关文章

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

以下是对c++中冒号和双冒号的用法进行了介绍,需要的朋友可以过来参考下   (1)表示机构内位域的定义(即该变量占几个bit空间) 复制代码 代码如下: typedef struct _XXX{           unsigned char a:4;           unsigned char c; } ; XXX (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. 复制代码 代码如下: struct _XXX{         

从汇编看c++中函数里面的static关键字的使用说明_C 语言

下面从汇编语言看其原理. 下面是c++源代码: 复制代码 代码如下: void add() {    static int i = 1;    i++;}int main() {   add(); } 下面是main对应的汇编码 复制代码 代码如下: ; 5    : int main() {     push    ebp    mov    ebp, esp ; 6    :    add();     call    ?add@@YAXXZ                ; 调用add ;

解读C++编程中派生类的构成和创建_C 语言

C++派生类的构成 派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分.从基类继承的成员体现了派生类从基类继承而获得的共性,而新增加的成员体现了派生类的个性.正是这些新增加的成员体现了派生类与基类的不同,体现了不同派生类之间的区别. 在基类中包括数据成员和成员函数 (或称数据与方法)两部分,派生类分为两大部分:一部分是从基类继承来的成员,另一部分是在声明派生类时增加的部分.每一部分均分别包括数据成员和成员函数. 实际上,并不是把基类的成员和派生类自己增加的成员简单地加在一起就成为派生

C语言中逻辑运算符与条件运算符的学习教程_C 语言

逻辑运算符 逻辑运算符,用于对包含关系运算符的表达式进行组合,形成新的表达式:结果也是只有真或假两种情况,结果值用 BOOL 类型变量存储. 运算符 解释 结合方式 () [] -> . 括号(函数等),数组,两种结构成员访问 由左向右 ! ~ ++ -- + -  * & (类型) sizeof 否定,按位否定,增量,减量,正负号, 间接,取地址,类型转换,求大小 由右向左 * / % 乘,除,取模 由左向右 + - 加,减 由左向右 << >> 左移,右移 由左向

C/C++中获取数组长度的方法示例_C 语言

学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时都把它定义成一个宏,比如: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 而在C++中则可以使用模板

C++中的const和constexpr详解_C 语言

C++中的const可用于修饰变量.函数,且在不同的地方有着不同的含义,现总结如下. const的语义 C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象的常量性的操作都视为error. 对象的常量性可以分为两种:物理常量性(即每个bit都不可改变)和逻辑常量性(即对象的表现保持不变).C++中采用的是物理常量性,例如下面的例子: struct A { int *ptr; }; int k = 5, r = 6; const A a = {&k};

详解C++中的this指针与常对象_C 语言

C++ this指针详解 this 是C++中的一个关键字,也是一个常量指针,指向当前对象(具体说是当前对象的首地址).通过 this,可以访问当前对象的成员变量和成员函数. 所谓当前对象,就是正在使用的对象,例如对于stu.say();,stu 就是当前对象,系统正在访问 stu 的成员函数 say(). 假设 this 指向 stu 对象,那么下面的语句中,this 就和 pStu 的值相同: Student stu; //通过Student类来创建对象 Student *pStu = &s

c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)_C 语言

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.一般我们都构造双向循环链表. (1)定义双向链表的基本结构 复制代码 代码如下: typedef struct _DOUBLE_LINK_NODE  {      int data;      struct _DOUBLE_LINK_NODE* prev;      struct _DOUBLE_LINK_NODE* nex

C++编程中的数据类型和常量学习教程_C 语言

C++数据类型计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数.浮点数.字符等形式).不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组).数据结构指的是数据的组织形式.例如,数组就是一种数据结构.不同的计算机语言所允许使用的数据结构是不同的.处理同一类问题,如果数据结构不同,算法也会不同.例如,对10个整数排序和对包含10个元素的整型数组排序的算法是不同的. C++的数据包括常量与变量,常量与变量都具有类型.由以上这些数据类型还可以构成更复杂的数据结构.例如利用