今天遇到一个问题,如下:
struct uct
{
/*
...
*/
std::string strbuf;
}
结构体是封装在一个LIB库里,当外部程序使用LIB库时 ,LIB库用到了这个结构体,在使用的地方,通过调用可以看到std::string strbuf这个变量为错误的指针,在程序里对strbuf进行任何操作都会出现错误,正确使用如下:
struct uct
{
/*
...
*/
std::string strbuf;
uct() //构造函数
{
strbuf = "";
}
}
平常可能会忽略掉这点,这才是正确的写法,特别是LIB库发生这种错误的情况下,定位到代码点非常麻烦,为了更少的出现错误,严谨一点。