关于C ++中构造函数的奇怪行为

Kuntzuo

我直接向您显示代码。

#include <iostream>
#include <stdio.h>

class A {
   public:
   A(const std::string& name){
    std::string aname = "HAHA_" + name;
    std::cout << aname << std::endl;
    }

    ~A(){
         std::cout << "Done." << std::endl;
    }
};

int main() {

   size_t len = 5;
   char szTmp[30] ={0};
   snprintf(szTmp,sizeof(szTmp),"Getlist_V2_%zd",len);
   A a(std::string(szTmp));
   return 0;
}

预期结果如下:

HAHA_Getlist_V2_5
Done.

但是它什么也不输出。当我更换A a(std::string(szTmp));使用A a(szTmp);,erverything是确定的。很长一段时间让我感到困惑。

轨道轻赛
A a(std::string(szTmp));

这是一个函数声明,信不信由你!因此,没有A构造。

而是这样写:

A a{std::string(szTmp)};

或者,由于std::string存在对的隐式转换,因此满足以下任一条件:

A a{szTmp};
A a(szTmp);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模板方法构造函数中的C ++奇怪行为

来自分类Dev

关于DataContractSerializer构造的类实例的奇怪(对我而言)行为未从函数“返回”

来自分类Dev

奇怪的行为C ++纯虚函数

来自分类Dev

C ++中的构造函数和复制构造函数行为

来自分类Dev

Swift:关于展开的奇怪行为

来自分类Dev

C ++中的函数指针转换中的奇怪行为

来自分类Dev

关于C ++中的虚函数继承的难题

来自分类Dev

C ++结构中的奇怪行为

来自分类Dev

没有默认构造函数的奇怪的C ++复制构造函数

来自分类Dev

在C ++中奇怪地使用构造函数

来自分类Dev

C ++字符串-使用初始化列表构造函数时的奇怪行为

来自分类Dev

奇怪的C ++匿名构造函数

来自分类Dev

静态构造函数的奇怪行为

来自分类Dev

关于C ++中的类?

来自分类Dev

关于C ++中const成员函数的问题

来自分类Dev

C ++中类析构函数的奇怪行为

来自分类Dev

C ++关于两个类构造函数的问题

来自分类Dev

关于长度的奇怪数组行为

来自分类Dev

C ++:使用Stroustrup示例的关于移动构造函数/赋值的问题

来自分类Dev

C代码的奇怪行为(fgets函数)

来自分类Dev

奇怪的行为C ++纯虚函数

来自分类Dev

关于C ++中rand()函数的困惑

来自分类Dev

关于C malloc函数的问题

来自分类Dev

关于C ++中的好友功能

来自分类Dev

关于C ++中的sleep命令

来自分类Dev

C ++中奇怪的引用行为

来自分类Dev

Scala:关于`foldLeft`的奇怪行为

来自分类Dev

关于C ++中的输出

来自分类Dev

ediprolog关于emacs的奇怪行为