小编Rik*_*ika的帖子

如何在C++中使用枚举

假设我们有enum以下内容:

enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday};
Run Code Online (Sandbox Code Playgroud)

我想创建一个这样的实例enum并用适当的值初始化它,所以我做:

Days day = Days.Saturday;
Run Code Online (Sandbox Code Playgroud)

现在我想用现有enum值检查我的变量或实例,所以我这样做:

if (day == Days.Saturday)
{
    std::cout << "Ok its Saturday";
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个编译错误:

错误:'.'之前的预期primary-expression 代币

所以要说清楚,说:有什么区别:

if (day == Days.Saturday) // Causes compilation error
Run Code Online (Sandbox Code Playgroud)

if (day == Saturday)
Run Code Online (Sandbox Code Playgroud)

这两个实际上是指什么,一个是好的,一个导致编译错误?

c++ enums

202
推荐指数
9
解决办法
40万
查看次数

如何在C++中的main()内部声明什么,并在编译后有一个工作的应用程序?

在一次采访中,我遇到了一个问题:

您的朋友给了您一个源代码文件,该文件在控制台上打印斐波那契数字.请注意,main()块为空,并且其中没有任何语句.

解释这是如何可能的(提示:全局实例!)

我真的想知道这个,这样的事情怎么可能!

c++

85
推荐指数
3
解决办法
3715
查看次数

我可以使用Qt LGPL许可证并在没有任何限制的情况下出售我的应用程序吗?

我想开始一个跨平台的项目.我有我的研究,现在我几乎肯定Qt是正确的交易.这里有一个很大的障碍:许可.

我想出售我的项目,我也不想透露与我的工作相关的任何来源或支付许可证.我检查并发现Qt提供商业和开源解决方案.我听过太多关于Qt许可的矛盾说法让我很困惑.有人说即使我使用QPL的LGPL版本,我仍然需要提交我的代码.这是真的?

有人可以给我一个关于Qt许可证的简单解释,并告诉我是否可以在没有任何限制的情况下出售我的应用程序?在没有任何限制的情况下,有人会告诉我任何其他Qt用于跨平台开发吗?

c++ qt licensing

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

为什么我们使用序列化?

为什么我们需要使用序列化?
如果我们想通过网络发送一个对象或一块数据我们可以使用字节流.
如果我们想将一些数据保存到磁盘我们可以再次使用二进制模式和字节流并保存它.
那么使用序列化的优势是什么?

serialization

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

SET GLOBAL max_allowed_pa​​cket不起作用

我发现了如何使用更改max_allowed_packetMySQL中的默认值SET GLOBAL.但是,每次使用此命令时,默认值都保持不变!我使用了这些命令:

mysql --user=root --password=mypass
mysql> SET GLOBAL max_allowed_packet=32*1024*1024;
Query OK, 0 rows affected (0.00 secs)
mysql> SHOW VARIABLES max_allowed_packet;
Run Code Online (Sandbox Code Playgroud)

然后结果是max_allowed_pa​​cket = 1048576.我错过了什么?

mysql linux centos5

25
推荐指数
3
解决办法
6万
查看次数

是否可以将 vscode(在本地机器上)与 Google Colab(免费服务)运行时连接?

我知道在 GCP 上,我们可以设置一个 vscode 服务器并连接到它。但是我在这里想要的是知道是否可以从本地运行的 vscode连接到 Google Colab 上的运行时实例(免费的,即:https://colab.research.google.com)。如果我没记错的话,我们可以在 vscode 中连接到任何远程 Jupyter 内核,而不是在本地创建一个新实例并连接到它。

所以我想知道是否可以先创建一个 Python 3 notebook,然后从本地机器启动 vscode,连接到 Colab 运行时并在 vscode 中编写代码?

这里没有任何本地内容,所有文件、笔记本、一切都驻留在 Google Colab 上,它只是使用 vscode 而不是 Google 自己的编辑器来编码和执行代码(调试等)。

更新

感谢回答,我可以成功连接到 Google Colab。但是,当我退出 ssh 并尝试再次登录时,我遇到了以下情况:

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:yxFwLslfRq7YZFWNIhAD8TfJdp6sTfFbR2CXOWcysOA root@7561da0610da (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:6Yo/7I9JPyYfKJYvtiVelNFHrIL7R1xaB09fDWbVYf4 root@7561da0610da (ECDSA)
Creating SSH2 ED25519 key; this may take …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code google-colaboratory

24
推荐指数
4
解决办法
2万
查看次数

为什么可以将友元函数定义放在类定义中?

是否应该在类之外明确定义朋友函数?
如果是这样,为什么我可以像任何成员函数一样在类定义中声明友元函数?
这是什么 ?
是否仅<适用于某些运营商(如运营商)或是否适用于所有运营商?
如果它适用于所有这些,那么这样做是否有任何不利之处?
应该避免吗?如果是这样的话?

class person 
{
public:
    bool operator<(int num)
    {
        return  x < num ? true : false ;
    }
    bool operator<(person& p)
    {
        return  x < p.x ? true : false ;
    }

    friend bool operator<(int num, person &p)
    {
        return  p.x < num ? true : false ;
    }

    void setX(int num)
    {
        x = num;
    }

private:
    int x;


};
Run Code Online (Sandbox Code Playgroud)

更新:
我不是要求选择非成员运算符重载或成员运算符重载.
我想知道的是:
为什么我们被允许在我们的类定义中移动friend方法的定义?.
它不违反任何事情吗?如果不是,为什么我们会在第一时间有朋友? …

c++ operator-overloading friend

17
推荐指数
3
解决办法
7567
查看次数

我如何迭代QListWidget项目并处理每个项目?

在CSharp中,它就像写作一样简单:

listBox1.Items.Add("Hello");
listBox1.Items.Add("There");

foreach (string item in listBox1.Items )
{
    MessageBox.Show(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)

我可以轻松地将不同的对象添加到列表框中,然后使用foreach检索它们.我在Qt 4.8.2中尝试了相同的方法,但看起来它们是不同的.虽然它们看起来非常相似.我发现Qt支持foreach所以我继续尝试类似于:

foreach(QListWidgetItem& item,ui->listWidget->items())
{
    item.setTextColor(QColor::blue());
}
Run Code Online (Sandbox Code Playgroud)

明显失败了.它说items()需要一个让我困惑的参数.我试图遍历ListBox本身,那么这意味着什么?我尝试传递ListBox对象作为参数本身,这也失败了:

foreach(QListWidgetItem& item,ui->listWidget->items(ui->listWidget))
{
    item.setTextColor(QColor::blue());
}
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题:

  • 如何遍历Qt中的QListWidget项?
  • 我可以将对象存储为QListWidgets中的项目,如C#吗?
  • 如何将QListWidgets中的对象转换为字符串(Qt中的C#s ToString计数器部分)?

(假设我想使用QMessagBox而不是setTextColor,并希望打印出QlistWidget中的所有字符串项.)

c++ qt qlistwidget

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

“ pip配置了需要TLS / SSL的位置,但是Python中的ssl模块不可用”

我有anaconda软件包并运行Spyder。这是我的系统信息:

anaconda                  2018.12                  py37_0

Python                    3.7.1

pip                       18.1

Dell Inspiron 13 7000 64-bit
Run Code Online (Sandbox Code Playgroud)

我无法从命令提示符下使用pip安装任何内容。例如,在尝试安装numpy时(通过anaconda已经拥有),我得到以下信息:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Requirement already satisfied: numpy in c:\users\uday rallabhandi\anaconda3\lib\site-packages (1.15.4)

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't …
Run Code Online (Sandbox Code Playgroud)

python openssl pip download anaconda

15
推荐指数
6
解决办法
3万
查看次数

TypeError:索引到字典时,'type'对象不可订阅

我有多个文件需要加载,所以我用a dict来缩短内容.当我运行时,我得到一个"TypeError:'type'对象不可订阅"错误.我怎样才能让它发挥作用?

TypeError: 'type' object is not subscriptable 
Run Code Online (Sandbox Code Playgroud)

python dictionary python-3.x

14
推荐指数
2
解决办法
13万
查看次数