C++动态数据结构

C++ dynamic data structure

本文关键字:数据结构 动态 C++      更新时间:2023-10-16

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

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;
}

有人可以帮忙吗?

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

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

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

实际上,为什么还要在这里使用结构?你应该只是声明。

class Cschools{
public: 
    float *marks; 
};

还应该有一个适当的构造函数用于Cschools

这里缺少很多关于类的基础知识。

请阅读此内容。

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

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

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

Cschools::Syear

不过,在 C++11 中,如果需要,您可以从对象中获取该类型:

decltype(school[0])::Syear

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

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