小编Kam*_*mek的帖子

枚举值与枚举名称冲突

让我们采用我最近在项目中找到的代码构造:

namespace Test
{
    enum EName
    {
        CoolEnum,
        NiceEnum
    };

    enum CoolEnum
    {
        CoolVal1,
        CoolVal2
    };

    enum NiceEnum
    {
        NiceVal1,
        NiceVal2
    };
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么编译器允许这样的东西.我们来这里是一个代码示例:

Test::CoolEnum cEnum = Test::NiceVal1; // INVALID, as compiler refers to Test::CoolEnum value of Test::Ename enum
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种混乱?我理解为什么我必须在前面加上enum关键字,所以编译器清楚地知道我在声明给定枚举的变量,而不是在同一名称空间中使用其他枚举的值.我只是不明白为什么首先它甚至可以做这样的结构.

c++ enums gcc

6
推荐指数
2
解决办法
3049
查看次数

Qt Android蓝牙套接字在Android 5.1.1和6.0上编写问题

我正在使用Qt for Android开发应用程序,它使用蓝牙.Qt创建者中的目标API设置为16(据我记得4.1).高达5.0,应用程序没有问题但是从5.1.1开始写入rfcom蓝牙套接字存在问题.这是我设法摆脱日志的原因.

就在收到QBluetoothSocket :: connected信号之前,我可以看到:

D/bt_vendor( 4541): op for 7
D/bt_upio ( 4541): BT_WAKE is asserted already
D/bt_vendor( 4541): op for 7
D/bt_upio ( 4541): BT_WAKE is asserted already
D/bt_vendor( 4541): op for 7
D/bt_upio ( 4541): BT_WAKE is asserted already
D/bt_vendor( 4541): op for 7
D/bt_upio ( 4541): BT_WAKE is asserted already
W/bt-btif ( 4541): new conn_srvc id:26, app_id:1
W/bt-btif ( 4541): bta_dm_pm_ssr conn_srvc id:26, app_id:1
W/bt-btif ( 4541): bta_dm_pm_ssr:2, lat:1200
D/bt_vendor( 4541): op for 7
D/bt_upio ( …
Run Code Online (Sandbox Code Playgroud)

c++ qt android bluetooth

6
推荐指数
0
解决办法
750
查看次数

Yii CListView摘要文本

有没有办法隐藏CListView的"摘要"而不会丢失分页.总结我的意思是"显示2个结果中的1-2个".或者也许我应该使用不同的小部件?

yii

5
推荐指数
3
解决办法
2万
查看次数

使用Qt CSS设置自己的Q_PROPERTY(QFont)

我正在使用Qt 4.6.2,我有QCSS的问题.我有自己的Q_PROPERTY(QFont myFont READ myFont SET setMyFont).我想用QCSS改变它,但它不起作用.我尝试使用普通font语法,但它不起作用.我也尝试了其他一些组合,如:

qproperty-myFont: font(serif 20 1 0) font(serif 20 bold) QFont(serif 20 1 0) QFont(serif 20 bold) QFont(bold 20px serif)

等等

qt qt4

4
推荐指数
1
解决办法
2180
查看次数

否定运算符和比较

让我们拿一些代码示例:

! 4 > 0;
Run Code Online (Sandbox Code Playgroud)

从C++标准我们知道,否则将首先进行否定,而不是比较.但是,如果我们稍微扩展这个例子:

#include <iostream>

class Test
{
public:
    bool operator!() const
    {
            std::cout << "operator!" << std::endl;
            return false;
    }

    bool operator>(const int &) const
    {
            std::cout << "operator>" << std::endl;
            return false;
    }
};


int main(int argc, char * argv[])
{
    Test t;
    std::cout << "t > 0;" << std::endl;
    t > 0;
    std::cout << "! t > 0;" << std::endl;
    ! t > 0;
    std::cout << "!t.operator>(0)" << std::endl;
    ! t.operator>(0);

    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c++ comparison negation

3
推荐指数
1
解决办法
541
查看次数

奇怪的运营商"| ="

我是相对较新的编码,无论如何我在复制iphone像素技术的教程时遇到了这个if语句,无论如何我不确定它在做什么,所以如果有人能为我解释那将是非常棒的谢谢.

for(int j = 0; j < (width * height); j++ ) 
{
    if ( pixels[j] & 0xff000000 )  
    {
        collisionMap[j] |= 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

困扰我的部分是'| ='和单个'&'符号.这里发生了什么?谢谢

c c++ operators

2
推荐指数
1
解决办法
244
查看次数

标签 统计

c++ ×4

qt ×2

android ×1

bluetooth ×1

c ×1

comparison ×1

enums ×1

gcc ×1

negation ×1

operators ×1

qt4 ×1

yii ×1