错误C3861:'strcpy_y':找不到标识符

时间:2014-01-14 18:57:36

标签: c++ visual-c++ c++11

Pacient& operator = ( Pacient&p) {
  cout << "Operator = Pacient" << endl;
  delete [] this->nume;
  this->nume = new char[strlen(p.nume)+1];
  strcpy_y(this->nume,strlen(p.nume)+1,p.nume); // ERROR
  delete [] this->prenume;
  this->prenume = new char[strlen(p.prenume)+1];
  strcpy_y(this->prenume,strlen(p.prenume)+1,p.prenume); // ERROR
  this->varsta = p.varsta;
  return *this;
}
  

1&GT;编译...
  1 GT; pacienti.cpp
  1&gt; f:\ bob \ facultate \ semestrul iii \ programareorientataobiect \ proiect pacienti \ proiect \ proiect \ pacienti.cpp(24):错误C3861:'strcpy_y':未找到标识符
  1&gt; f:\ bob \ facultate \ semestrul iii \ programareorientataobiect \ proiect pacienti \ proiect \ proiect \ pacienti.cpp(27):错误C3861:'strcpy_y':未找到标识符

我收到此错误。为什么?我该怎么做才能摆脱它?

3 个答案:

答案 0 :(得分:2)

没有strcpy_y这样的东西,至少在标准C ++中没有。

也许您的意思是strcpy_s from WINAPI

如果strcpy_y是您自己创建的函数,那么您需要#include声明它的文件。

为什么首先使用原始C风格的字符串?只需使用std::string作为locat变量分配,所有这些问题就会消失。使用operator=复制string

答案 1 :(得分:2)

编译器不知道strcpy_y是什么,因为您尚未在当前翻译单元中该行之前的任何位置声明它。

要么为strcpy_y提供声明(例如#include相关标题,要么向前声明它),或者如果您打算调用其他函数,请修正拼写错误。

答案 2 :(得分:0)

我认为它可以帮到你: #include <string.h>

但我不建议在代码中使用strcpy_y,因为它不是C ++。