尝试学习C ++并遇到了OOP。我不喜欢 掌握strncpy(m_strName,strName,25);作品。这不是一个功能吗?它在哪里打电话?我看到它通过指向* strName来调用m_strName,但这些值是如何在这里传递的?
#include <iostream>
class Employee
{
public:
char m_strName[25];
int m_nID;
double m_dWage;
// Set the employee information
void SetInfo(char *strName, int nID, double dWage)
{
strncpy(m_strName, strName, 25);
m_nID = nID;
m_dWage = dWage;
}
// Print employee information to the screen
void Print()
{
using namespace std;
cout << "Name: " << m_strName << " Id: " <<
m_nID << " Wage: $" << m_dWage << endl;
}
};
int main()
{
// Declare two employees
Employee cAlex;
cAlex.SetInfo("Alex", 1, 25.00);
Employee cJoe;
cJoe.SetInfo("Joe", 2, 22.25);
// Print out the employee information
cAlex.Print();
cJoe.Print();
return 0;
}
答案 0 :(得分:1)
char * strncpy ( char * destination, const char * source, size_t num )
将源的前几个num字符复制到目标。如果在复制num个字符之前找到源C字符串的结尾(由空字符表示),则使用零填充目标,直到已经写入总数为num个字符。
strncpy(m_strName, strName, 25);
会将strName
中的25个字符复制到m_strName
。此函数驻留在cstring
头文件中。您必须包含此文件才能使用此功能。
如果您理解这一点,您会发现大多数问题没有意义。