C++类使用指针和strcpy获取值

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)

Lig*_*ica 7

这段代码有什么作用?

它烧伤了孩子们的眼睛.

这里的假设是类Comm具有类型char*或的成员变量char[N].本身没有"setter" ,但是Comm构造函数尝试将其输入复制到该成员变量.该getId函数是此成员变量的getter.

根据代码的其余部分,由于内存分配不足,缺少内存解除分配以及缺少复制语义,这可能完全有缺陷.在最好的成员是一个数组,然后缺少的范围检查的strcpy调用是一个严重的安全隐患.

使用时,该类将更好地重新设计std::string.

鼓励您从这段代码中学习.

相反,从一本好书中学习.

  • @DieterLücking:怎么回事?OP可能不知道这可能是非常糟糕的代码.怎么告诉他这个没帮助?我免费分享我的专业知识.这很有帮助.你对我的回答抱怨而不给予任何建设性的批评_但是没有帮助.请停止,如果您认为自己可以做得更好,请随时写下自己的答案! (4认同)