【问题标题】:C++ classes getting value using pointers and strcpy [closed]C++ 类使用指针和 strcpy 获取价值 [关闭]
【发布时间】:2014-01-05 21:06:07
【问题描述】:

我正在尝试理解 C++。谁能解释一下这段代码到底做了什么,我知道它是Java中的某种类型的setter和getter,但我不确定。

Comm::Comm(const char* id)
{
strcpy(this->id, id);
}


char* Comm::getId()
{
   return id;
}

【问题讨论】:

  • 纯错误代码(如果您的示例显示全部)
  • 它不是一个 setter 它是一个构造函数
  • 我强烈建议您购买一些可以教授您的 C++ 基础的书。不得不说“从游戏编程开始C++”还不错。
  • 这个问题似乎离题了,因为它更适合聊天室、讨论论坛或一对一辅导会议。
  • @user3126119:你是怎么做的?

标签: c++ class pointers strcpy


【解决方案1】:

这段代码有什么作用?

会灼伤孩子的眼睛。

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

根据代码的其余部分,由于缺少内存分配、缺少内存释放和缺少复制语义,这可能是完全有缺陷的。 最好成员是一个数组,然后strcpy调用中缺少范围检查是一个严重的安全风险。

使用std::string 重新设计该类会更好。

鼓励你学习这段代码 sn-p。

相反,向a good book学习。

【讨论】:

  • 这个答案也没用
  • @DieterLücking:感谢您的成熟和富有成效的贡献。
  • 感谢您的消息灵通的“它灼伤了孩子们的眼睛”
  • @DieterLücking:你知道,我确实写过其他词...
  • @DieterLücking:它没有有什么帮助? OP 可能没有意识到这可能是非常糟糕的代码。告诉他这件事怎么没有帮助?我免费分享我的专业知识。这很有帮助。你对我的回答抱怨whatsoever没有有帮助的。请停止,如果您认为自己可以做得更好,请随意写下您自己的答案!
猜你喜欢
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多