尝试返回指向Visual Studio

时间:2018-03-13 21:36:49

标签: c++ pointers dynamic-arrays

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

Student.h

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

Student.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&#39;学生:: getthings&#39;:非标准语法;使用&#39;&amp;&#39;创建指向成员行184的指针

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

错误C3867&#39; Student :: CheckoutCount&#39;:非标准语法;使用&#39;&amp;&#39;创建指向成员行188的指针

&#34;同样的事情,第189行

错误C2296&#39;&gt;&#39;:非法,左操作数的类型为&#39; unsigned int(__thiscall Student :: *)(void)第189行

错误C2297&#39;&gt;&#39;:非法,右操作数的类型为&#39; unsigned int(__thiscall line 189

错误C3867&#39; Student :: CheckoutCount&#39;:非标准语法;使用&#39;&amp;&#39;创建指向成员行191的指针

错误C2446&#39;&lt;&#39;:来自&#39; unsigned int&amp;(__ thiscall Student :: *)(void)&#39;到&#39; int&#39;第191行

1 个答案:

答案 0 :(得分:-1)

您的班级定义最后缺少;,以及以后定义的成员函数

您的Student.cpp在开始时缺少#include "Student.h"

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

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

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