C ++动态数据结构

时间:2013-09-11 17:04:56

标签: c++ arrays class struct

HY!我是c ++的新手,我尝试制作一些动态结构。 Theese是:

class Cschools
{
struct Syear
  {
    float *marks;
  };
};

int main()
{
    Cschools *school=new Cschools[5];  //this linking is pretty good
    school[0].Syear *year=new school[0].Syear[5];  //there are some errors
    return 0;
}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

这可能会让你朝着正确的方向前进。

class Cschools
{
public: 
struct Syear{
    float *marks;
}year;

};

你必须明白你正在声明一个结构。您将访问year而不是Syear,因为year“对象”不是Syear。

实际上为什么在这里使用结构呢?你应该宣布。

class Cschools{
public: 
    float *marks; 
};

Cschools还应该有一个合适的构造函数。

这里缺少关于课程的许多基础知识。

Read this please.

school[0].Syear *year=new school[0].Syear[5];

完全重新考虑这条线......

答案 1 :(得分:0)

要指定嵌套类型,必须使用外部类型名称,而不是外部类型的对象:

Cschools::Syear

尽管如此,在C ++ 11中,如果需要,可以从对象中获取该类型:

decltype(school[0])::Syear

由于Syear是私有的,您也会遇到问题,因为这是使用class关键字定义的类成员的默认设置。您需要使用struct关键字,或添加public:说明符。

然后你应该学会不使用new,除非你真的需要动态分配。