我目前正在学习C++,正在做一个作业,要求我创建:

因此,首先,我已经创建了类(class)人员;因此,不必担心继承或类,我唯一​​的问题是结构,这是我的代码:
学生

#include <string>
#ifndef student_h
#define student_h
#include "person.h"
class student: public person {

private:
        struct stud {
            int age;
        };

public:
        student();
        int getAge();
};

#endif
学生.cpp
#include <iostream>
#include <string>
using namespace std;
#include "student.h"


student::student() {


}

int student::getAge() {

    return stud.age;
}
因此,以同样的方式,我的逻辑是,如果您在.h文件中定义一个私有(private)整数并在.cpp文件中自由使用它,那么我应该对结构进行处理。当我尝试在运行student.cpp之前为synthax错误编译main.cpp时,出现以下错误:

这是指return stud.age;。我正在使用(并被迫使用)Visual Studio 2005。
如何使用函数检索结构的年龄?另外,我的老师所说的一系列结构是什么意思?这是否意味着我必须在主数组中创建数组,以及如何创建数组?

最佳答案

嵌套类stud定义一个新类型,而不是该类型的变量。如果要创建stud类型的变量,请为其声明一个单独的成员,如下所示:

class student: public person {
private:
        struct stud_t {
            int age;
        };
        stud_t stud;
public:
        student();
        int getAge();
};

现在stud_t是该类型的名称,stud是该类型的变量的名称。

另外,您可以将stud设为匿名struct,如下所示:
class student: public person {
private:
        struct {
            int age;
        } stud;
public:
        student();
        int getAge();
};

10-08 08:07