关闭

C++结构体初始化

821人阅读 评论(0) 收藏 举报
分类:

今天遇到一个问题,如下:

struct uct
{
   /*
   ...
   */
   std::string strbuf;
}
结构体是封装在一个LIB库里,当外部程序使用LIB库时 ,LIB库用到了这个结构体,在使用的地方,通过调用可以看到std::string strbuf这个变量为错误的指针,在程序里对strbuf进行任何操作都会出现错误,正确使用如下:

struct uct
{
   /*
   ...
   */
   std::string strbuf;
   uct()  //构造函数
  {
     strbuf = "";
  }
}
平常可能会忽略掉这点,这才是正确的写法,特别是LIB库发生这种错误的情况下,定位到代码点非常麻烦,为了更少的出现错误,严谨一点。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:138957次
    • 积分:2193
    • 等级:
    • 排名:第18037名
    • 原创:146篇
    • 转载:128篇
    • 译文:2篇
    • 评论:34条
    文章分类
    最新评论