gpt4 book ai didi

c++ - 表达式必须具有类类型。不知道怎么解决

转载 作者:行者123 更新时间:2023-11-28 04:04:45 27 4
gpt4 key购买 nike

我是 cpp 语言的新手,我的代码有问题,我不知道如何解决,我在这里查看了人们就此错误提出的其他一些问题,但没有一个答案真正帮助我解决问题。所以这是我的主要功能:

#include <iostream>
#include "Person.h"
#include <string>


int main() {
Person p2();
Person p1();
std::cout << p1.toString() << std::endl;
return 0;
}

这是我的 Person.h 文件:

#ifndef PERSON_H_
#define PERSON_H_
#include <string>
class Person {
private:
int age;
std::string name;
int numOfKids;
public:
Person() {
this->age = 0;
this->name = "bob";
this->numOfKids = 5;
}
Person(int agee, std::string namee, int numof);
~Person();
std::string toString();


};

#endif // PERSON_H_

在 main 函数中它标记了 p1.toString() 并且说“表达式必须有类类型”而且我不知道该怎么做,我尝试了很多方法,但都没有用。

最佳答案

你写的这些语句可能有歧义:Person p2();

  1. (你想要的)一个类型为 Person 且默认构造的变量 p2。
  2. (编译器认为)返回 Persion 对象的函数声明 p2。

删除括号或使用“{}”(c++11) 应该使事情变得清楚:

Person p1{};
Person p2;

关于c++ - 表达式必须具有类类型。不知道怎么解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58948857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com