c++ 类 单冒号

本文深入探讨了C++中位字段的使用,通过一个具体的类Student实例,详细解析了位字段如何分配和存储数据。文章解释了当尝试将超出位字段最大值的数据赋值时,实际存储的是该数据的低位部分,从而导致可能与预期不符的结果。
class Student
{
public:
    unsigned int a:1;    //1位
    unsigned int b:1;    //1位
    unsigned int c:1;    //1位
    unsigned int d:2;    //2位
}

main(){
    qDebug()<<"a:"<<s->a;
    s->b=1;
    qDebug()<<"b:"<<s->b;
    s->c = 2;    //由于超过最大值1,所以取2(0010)的第一位0,所以结果是0
    qDebug()<<"c:"<<s->c;
    s->d = 2;
    qDebug()<<"d:"<<s->d;
    /*
    a: 0
    b: 1
    c: 0
    d: 2
    */
}

 

### 冒号 `:` 的作用和用法 在 C++ 中,冒号 `:` 是一种语法符号,在不同的上下文中具有多种含义。以下是其主要用途及其解释: #### 1. 条件运算符的一部分 `?:` 被称为三元条件运算符,用于根据布尔表达式的值返回两个可能的结果之一。 例如: ```cpp int result = (a > b) ? a : b; ``` 在此处,如果 `(a > b)` 成立,则返回 `a`;否则返回 `b`[^5]。 #### 2. 基初始化列表中的分隔符 当定义构造函数时,可以使用成员初始化列表来初始化基或数据成员。此时,`: ` 符号用来分隔构造函数名与其后的初始化列表。 例如: ```cpp class Base { public: int value; Base(int v) : value(v) {} // 使用冒号分隔构造函数名称与初始化列表 }; ``` #### 3. 型限定符 在命名空间或嵌套结构体/中,`::` 双冒号操作符表示范围解析操作符,而冒号通常作为双冒号的前缀部分出现。尽管严格来说这不是独使用的冒号功能,但在某些情况下会看到似的写法。 例如: ```cpp namespace Example { class MyClass {}; } Example::MyClass obj; // 此处 :: 表达完整的范围解析概念 ``` #### 4. 标签语句 在控制流转移指令(如 goto 或 switch-case 结构)里,`:` 定义了一个标签位置供程序跳转至该点执行后续逻辑。 ```cpp goto label_name; label_name: { /* Code here */ } // or within switches... switch(variable){ case constant_value: statement_sequence break; default : default_statement ; } ``` 综上所述,虽然没有直接提及于所提供的参考资料之中,但是通过分析得知上述四种情况涵盖了大部分关于C++编程语言里面single colon的实际应用场景以及它们各自代表的意义[^6]。 ```cpp #include <iostream> using namespace std; struct Point { double x,y; // Constructor with initializer list using ':' Point(double xx,double yy):x(xx),y(yy){} }; int main(){ bool condition=true; cout << ((condition)? "True":"False")<<endl;//Ternary Operator Usage Point p(3.0,4.0); cout<<"Point coordinates:"<<p.x<<","<<p.y<<".\n"; return 0;} ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值