因此,我需要一个将Person指针作为其参数的方法。这意味着我必须在我的头文件和cpp文件中都声明它。看起来像这样。

人员注册

#pragma once
class PersonReg
{
public:
    PersonReg(int const maxSize);
    void addPerson(Person* personPtr);
    ~PersonReg();
};


PersonReg.cpp

PersonReg::PersonReg(int mSize)
{
    maxSize = mSize;
}

void add(Person* personPtr) {
    //Do stuff
}

PersonReg::~PersonReg()
{
}


问题是Visual Studio抱怨addPerson的函数定义丢失,并提出了实现它的建议。如果我这样做,它看起来像这样:

void PersonReg::addPerson(Person * personPtr)
{
}


现在这里发生了什么?为什么找不到我的实现?星号周围的空格是什么意思?有什么不同?

最佳答案

void PersonReg::addPerson(Person* personPtr) {
    //Do stuff
}


是你所需要的。您已经错过了说出函数的正确名称和名称空间的地方。

我也不认为星号周围的空格很重要。有些人在类型旁边留了空格,有些人在名称旁边留了空。

关于c++ - H和CPP文件中的C++冲突指针声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47173861/

10-11 21:59