尝试返回指向 Visual Studio 中的动态数组的指针时出错C++



我在重载流插入运算符时尝试返回指向C++中的动态数组的指针时遇到了一些问题。我正在使用Visual Studio 2017。这是相关代码。如果您认为有必要,我会发布我的所有代码,但我不想让您阅读整个内容,因为我目前只有一点问题。另外,这个任务要求我使用动态数组,所以请不要告诉我只使用 std::vector。

学生.h

class Student
{
private:
string firstname;
string lastname;
unsigned int id;
unsigned int items_checkedout;
string *things = new string[items_checkedout];
}

学生.cpp

const string* Student::getthings()
{
return things;
}
const string Student::getFirstName()
{
return firstname;
}
const string Student::getLastName()
{
return lastname;
}
const int Student::getID()
{
return id;
}
unsigned int Student::CheckoutCount()
{
return items_checkedout;
}
ostream& operator<<(ostream& out, const Student& stu)
{
const string *things = stu.getthings;

out << stu.getID << " " << stu.getFirstName << " " << stu.getLastName << 
endl;
out << stu.CheckoutCount;
if (stu.CheckoutCount > 0)
{
for (int i = 0; i < stu.CheckoutCount; i++)
{
out << things[i];
}
}
}

以下是我遇到的错误:

错误 C3867 "Student::getthings":非标准语法;使用"&"创建指向成员行 184 的指针

错误 C2276 '*':对绑定成员函数表达式行 187 的非法操作

错误 C3867 "学生::结帐计数":非标准语法;使用"&"创建指向成员行 188 的指针

"同样的事情,189行

错误 C2296 '>':非法的左操作数的类型为"无符号 int (__thiscall 学生::* )(无效) 第 189 行

错误 C2297 '>':非法的右操作数的类型为"无符号 int (__thiscall 行 189

错误 C3867 "学生::结帐计数":非标准语法;使用"&"创建指向成员行 191 的指针

错误 C2446"<":没有从"无符号的 int &(__thiscall 学生::* )(无效)"转换为"int"行 191

类定义末尾缺少;,以及稍后定义的任何成员函数。

您的学生.cpp一开始就缺少#include "Student.h"

您的 Student.h 在开始时缺少几个标准#include

这些表达stu.getFirstName可能应该像stu.getFirstName().

拿起一本关于入门C++的书。

相关内容

  • 没有找到相关文章

最新更新