语法错误,无法在c++;班 我目前正在学习C++,并且在一个作业中要求我创建:
继承具有以下属性的班级人员的班级学生(必须用.h和.cpp分隔): a。属性:结构持有课程及其成绩和其他属性的动态数组语法错误,无法在c++;班 我目前正在学习C++,并且在一个作业中要求我创建:,c++,class,struct,C++,Class,Struct,继承具有以下属性的班级人员的班级学生(必须用.h和.cpp分隔): a。属性:结构持有课程及其成绩和其他属性的动态数组 b。成员函数:根据需要显示给定课程的成绩和其他成员函数 因此,首先,我已经创建了类人;所以不要担心继承或类,我唯一的问题是结构,下面是我的代码: 学生 #包括 #ifndef学生会 #定义学生 #包括“person.h” 班级学生:公众人士{ 私人: 结构螺柱{ 智力年龄; }; 公众: 学生(); int getAge(); }; #恩迪夫 student.cpp #包括
b。成员函数:根据需要显示给定课程的成绩和其他成员函数
因此,首先,我已经创建了类人;所以不要担心继承或类,我唯一的问题是结构,下面是我的代码: 学生
#包括
#ifndef学生会
#定义学生
#包括“person.h”
班级学生:公众人士{
私人:
结构螺柱{
智力年龄;
};
公众:
学生();
int getAge();
};
#恩迪夫
student.cpp
#包括
#包括
使用名称空间std;
#包括“student.h”
学生::学生(){
}
int student::getAge(){
回程时间;
}
因此,我的逻辑是,以同样的方式,如果您在.h文件中定义一个私有整数,并在.cpp文件中自由使用它,那么我应该为struct执行此操作。在运行main.cpp
之前,当我尝试编译student.cpp
以获取synthax错误时,我得到以下错误:
.\student.cpp(14):错误C2275:'student::stud':非法使用此类型作为表达式
这是指返回螺柱.age代码>。我正在使用(并被迫使用)VisualStudio2005
如何使用函数检索结构的年龄?还有,我的老师所说的结构数组是什么意思?这是否意味着我必须在main中创建数组以及如何创建?嵌套类stud
定义一个新类型,而不是该类型的变量。如果希望创建类型为stud
的变量,请为其声明一个单独的成员,如下所示:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
现在,stud\t
是类型的名称,stud
是该类型变量的名称
或者,您可以将stud
设置为匿名struct
,如下所示:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
嵌套类stud
定义了一个新类型,而不是该类型的变量。如果希望创建类型为stud
的变量,请为其声明一个单独的成员,如下所示:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
现在,stud\t
是类型的名称,stud
是该类型变量的名称
或者,您可以将stud
设置为匿名struct
,如下所示:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
如果您真的想在内部结构中存储内容(我认为您不应该这样),那么您可以这样编写结构:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
在您的示例中,您正在声明类型为stud
的结构,但没有创建实例。在上面的代码片段中,我声明了一个匿名结构(即它的类型没有名称),然后创建了一个名为stud
的实例。
如果进行此更改,您当前的getAge
应该可以工作
“dynamic array”==vector如果您真的想在内部结构中存储内容(我认为您不应该这样),那么您可以这样编写结构:
class student: public person {
private:
struct stud_t {
int age;
};
stud_t stud;
public:
student();
int getAge();
};
class student: public person {
private:
struct {
int age;
} stud;
public:
student();
int getAge();
};
struct {
int age;
} stud;
在您的示例中,您正在声明类型为stud
的结构,但没有创建实例。在上面的代码片段中,我声明了一个匿名结构(即它的类型没有名称),然后创建了一个名为stud
的实例。
如果进行此更改,您当前的getAge
应该可以工作
“dynamic array”==vector嵌套类定义(结构)就是这样。它不声明该类型的数据成员。顺便说一下,前缀<代码>获取<代码>只是C++中烦人的冗长用法。您不会为余弦函数编写getCos(x)
,对吗?同样,只要age
就可以访问或计算年龄。哦,最好存储出生年份,而不是年龄。否则数据会很快过时。嵌套类定义(结构)就是这样。它不声明该类型的数据成员。顺便说一下,前缀<代码>获取<代码>只是C++中烦人的冗长用法。您不会为余弦函数编写getCos(x)
,对吗?同样,只要age
就可以访问或计算年龄。哦,最好存储出生年份,而不是年龄。否则数据会很快过时。谢谢,我的问题解决了,我现在明白了。谢谢你,我的问题解决了,我现在明白了。你太棒了\m/