小编ce_*_*ort的帖子

为什么我可以将字符串文字初始化为const char*和QString而不是QString*?

我对qt和C++比较陌生,我无法理解为什么我可以在头文件中声明以下内容:

const char* CONSIGNMENT_TAG_DONATE = "DTag";
Run Code Online (Sandbox Code Playgroud)

要么

QString CONSIGNMENT_TAG_DONATE = "DTag";
Run Code Online (Sandbox Code Playgroud)

要么

const QString CONSIGNMENT_TAG_DONATE = "DTag";
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用QString*时

QString* CONSIGNMENT_TAG_DONATE = "DTag";
Run Code Online (Sandbox Code Playgroud)

要么

const QString* CONSIGNMENT_TAG_DONATE = "DTag";
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说cannot initialize a member subobject of type 'QString*' with an lvalue of type 'const char[5]'.我的理解是字符串文字是一种类型,const char*所以我明白为什么这样做.但为什么要将其分配为QString有效但QString*无效?我确信这是一个相当基本的C++概念,我只是想了解它.

c++ qt c++11

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

空的析构函数会造成伤害吗?

我是 C++ 新手,我正在努力理解的概念之一是析构函数。出于好奇,不必要的(例如,当类没有动态分配的内存、资源或任何需要用户定义的析构函数的东西时)和空的析构函数会导致任何不可预见的问题吗?

编辑:我知道这部分内容已在“空”构造函数或析构函数是否会与生成的构造函数或析构函数执行相同的操作?但我想扩大它的范围,询问更多关于普遍负面后果的问题,例如崩溃或使应用程序变慢。有一些重叠,但这是一个略有不同的问题。

c++ c++11

0
推荐指数
1
解决办法
1796
查看次数

标签 统计

c++ ×2

c++11 ×2

qt ×1