Ch.
2016-04-12 12:57
采纳率: 33.3%
浏览 2.0k
已采纳

c++如何定义一个类中的数据不确定的类

比如
class s
{
public:
s(int a) {b=a;}
...
private:
int b;
int w[b];
.....
};

我试着用new,但是还是不成功,那么有什么办法可以使类中的数据多少由外部确定呢?

这是我在重载[]成员访问运算符
和重载()函数调用运算符时遇到的问题。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zengweitju 2016-04-12 14:25
    已采纳
    用静态数组的时候,必须同时指明数组的大小,比如int w[10],这是因为静态数组在栈上分配,在编译的时候就已经分配好内存了。楼主可以使用指针,也可以使用标准模板库中的vector.
    class s
    

    {
    public:
    s(int a)
    {
    w=new int[a];
    }
    //别忘了在析构函数中释放内存
    ~s()
    {
    delete[] w;
    }
    ...
    private:
    int* w;
    .....
    };

    点赞 评论
  • 小灸舞 2016-04-12 12:59

    为什么不用一个指针呢?
    int *w;

    点赞 评论
  • 云敛容 2016-04-12 13:39

    c++中int w[b];这个b必须是个确定的值。这里必须采用动态数组或者向量Vector才行。
    内部属性采用,int *w; 构造函数中 w = new int[b];
    或者采用c的方式w = (int *)malloc(b*sizeof(int));

    点赞 评论
  • 咖啡不加盐 2016-04-12 15:52

    用void指针,在用的时候强制转换即可

    点赞 评论

相关推荐 更多相似问题