为什么还是未初始化变量啊

不是都在构造函数里初始化了嘛

#include 
using namespace std;

const int N = 20; //最多样本数量

class CScores
{
public:
    CScores() 
    {
        m_pScores = 0;
        m_nLength = 0;
        m_fAverage = 0;
        m_nFailed = 0;
    }
    CScores(const int* pArray, int length)
    {
        int* pArray = new int[10];
        if (pArray) {//pArray非空,则复制内容
            memcpy_s(m_pScores, sizeof(int) * length, pArray, sizeof(int) * length);//内容复制
        }
        else {
            memset(m_pScores, 0, sizeof(int) * length);
        }
        CountAverageFailed();
    }
    CScores(const CScores&h):pArray(h.pArray),m_nLength(h.m_nLength)
    {
        int* pArray=new int [10];
        if (pArray) {//pArray非空,则复制内容
            memcpy_s(m_pScores, sizeof(int) * m_nLength, pArray, sizeof(int) * m_nLength);//内容复制
        }
        else {
            memset(m_pScores, 0, sizeof(int) * m_nLength);
        }
        CountAverageFailed();
    }

    ~CScores() { delete pArray; }

    void PrintScores();
    float GetAverage() { return this->m_fAverage; }
    int GetFailed() { return this->m_nFailed; }
    int GetL() { return m_nLength; }
    int GetMax();
    int GetMin();

private:
    void CountAverageFailed(); //内部函数,统计平均分和不及格人数


private:
    int* m_pScores;                        //分数s
    int m_nLength;                        //score的实际数量
    float m_fAverage;                    //平均分
    int m_nFailed;                        //不及格人数
    int* pArray = new int[10];
};



img

img

你定义了好几个构造函数,却只在一个构造函数里初始化。实际使用时,不知道你会用哪个构造函数,如果你是用了其他构造函数而不是第一个,那么这些初始化是不是就没有进行了?