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':未找到标识符
我收到此错误。为什么?我该怎么做才能摆脱它?
答案 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 ++。