将值传递给类中的数组(C ++)

时间:2015-02-27 20:32:25

标签: c++

尝试学习C ++并遇到了OOP。我不喜欢 掌握strncpy(m_strName,strName,25);作品。这不是一个功能吗?它在哪里打电话?我看到它通过指向* strName来调用m_strName,但这些值是如何在这里传递的?

来源:program tutorial

#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;
}

1 个答案:

答案 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头文件中。您必须包含此文件才能使用此功能。

如果您理解这一点,您会发现大多数问题没有意义。