我目前正在学习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();
};