iedstruct 2021-08-20 16:52 采纳率: 50%
浏览 25
已结题

类static操作的相关问题


#include<vector>
class Dp
{
    private:
        const static int N_ROW_MAX=1000;
    public:
        static std::vector<int> weight[N_ROW_MAX+1];
    private:
        static void Set();  //初始化静态成员数据 
};
int main()
{
    return 0;
}
void Dp::Set()
{
    weight[1].resize(1);
}

这个代码最后一行报错,如图:

img

但是只要把最后一行的resize去掉,就不会报错了,即:


#include<vector>
class Dp
{
    private:
        const static int N_ROW_MAX=1000;
    public:
        static std::vector<int> weight[N_ROW_MAX+1];
    private:
        static void Set();  //初始化静态成员数据 
};
int main()
{
    return 0;
}
void Dp::Set()
{
    weight[1];
}

这样就不会报错。
这是为什么?

  • 写回答

2条回答 默认 最新

  • 关注

    静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月20日