小编Kun*_*zuo的帖子

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

我直接给你看了代码.

#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;
}
Run Code Online (Sandbox Code Playgroud)

预期结果如下:

HAHA_Getlist_V2_5
Done.
Run Code Online (Sandbox Code Playgroud)

但它根本没有输出任何东西.当我更换A a(std::string(szTmp));A a(szTmp);,一切都没问题.很长一段时间我很困惑.

c++ gcc

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

标签 统计

c++ ×1

gcc ×1