use*_*119 -2 c++ pointers class strcpy
我想了解C++.任何人都可以解释这段代码的确切含义,我知道它是Java中的某种类型的setter和getter,但我不确定.
Comm::Comm(const char* id)
{
strcpy(this->id, id);
}
char* Comm::getId()
{
return id;
}
Run Code Online (Sandbox Code Playgroud)
这段代码有什么作用?
它烧伤了孩子们的眼睛.
这里的假设是类Comm具有类型char*或的成员变量char[N].本身没有"setter" ,但是Comm构造函数尝试将其输入复制到该成员变量.该getId函数是此成员变量的getter.
根据代码的其余部分,由于内存分配不足,缺少内存解除分配以及缺少复制语义,这可能完全有缺陷.在最好的成员是一个数组,然后缺少的范围检查的strcpy调用是一个严重的安全隐患.
使用时,该类将更好地重新设计std::string.
我不鼓励您从这段代码中学习.
相反,从一本好书中学习.