lareina_leeq
2016-10-20 01:46
采纳率: 50%
浏览 4.3k

菜鸟求助c++中如何定义类数组

我定义了一个类student 然后想定义一个类数组student students【10】。但是结果是不可以会出问题 ,网上查了是和构造函数有关?我不是很懂,想请教一下大家如何在c++中定义类数组,谢谢~

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Xefvan 2016-10-20 03:42
    已采纳

    例如

     #include <iostream>
    using namespace std;
    
    class Student
    {
    public:
        int value;
        int score;
    };
    
    
    int main()
    {
        Student *students = new Student[10];
    
        students[0].value = 10;
        students[0].score = 100;
    
        cout << students[0].value << " " << students[0].score << endl;  // 输出 10 100
    
        return 0;
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Ouyang_Lianjun 2016-10-20 13:20

    如果要定义类对象数组,如果你重写了一个带参数的构造函数,那么你必须再为类提供一个无参的构造函数,如下代码:

     #include<iostream>
    using namespace std;
    
    class A
    {
    private:
        int a;
    public:
        A(int a):a(a)
        {
    
        }
        A() {}
    };
    
    int main()
    {
    
        A a[5];
        A * b = new A[5];
    
    }
    
    评论
    解决 3 无用
    打赏 举报
  • threenewbee 2016-10-20 01:47

    没问题
    student students[10]
    students[0] = student(...构造函数的参数)
    ...

    评论
    解决 无用
    打赏 举报
  • zhangfengz1995 2016-10-23 03:47

    如果没有默认构造函数,就得用allocator了,c++11的新特性,搜一搜就行
    简单来说new的时候是分配空间和调用默认构造函数一起进行,你现在没默认构造函数
    allocator是分配空间和构造分步进行,不一定非要默认构造函数

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题