通过指针

时间:2017-12-09 18:11:47

标签: c++ pointers

我的程序有问题。我在寻找答案,但我找不到解决方案。我创建了struct和class:

struct Data
{
    Client* k;
    string msg;
};
class Client 
{
public:
    string name;
    int _id;
}

然后我创建了数据表。

Data tab[100];

当我尝试从表格中的某些字段获取名称时,如下所示:

tab[i].k->name;

我收到错误:

C2227 left of "->name" must point to class/struct/union/generic type
C2027 use of undefined type 'Client'

1 个答案:

答案 0 :(得分:1)

你有一个&#39 ;;'客户端类声明后丢失。

无论哪种方式,我都会略微修改您的代码(在数据之前的客户端,添加缺失的&#39 ;;')并使其编译并正常运行:

#include <iostream>

using namespace std;

class Client
{
public:
    string name;
    int _id;
};
struct Data
{
    Client* k;
    string msg;
};

int main()
{
    Data tab[100];

    for (int i = 0; i < 100; i++)
    {
        tab[i].k = new Client();
        tab[i].k->name = "name" + to_string(i);
        cout << tab[i].k->name << endl;
    }
}