gpt4 book ai didi

c++ - 错误 : could not convert 'p1' from 'Person (*)()' to 'Person'

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:18:44 26 4
gpt4 key购买 nike

我明白了

error: could not convert 'p1' from 'Person (*)()' to 'Person'

每当我使用默认构造函数时(当我创建 Person p1 时),我知道这是因为我使用的是 char 数组但我必须使用它,我不能使用字符串

我也收到了 2 条警告

warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]|

在默认构造函数中

warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]| 

当我创建 Person p2 时

这是我的代码

#include <iostream>
#include <string>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

class Person{
private:
char* name;
char gender;
int age;
public:
Person();
Person(char*, char, int);
friend void printInfo(Person);
};

Person::Person()
:name(NULL), gender(NULL), age(0) // this results in the first warning
{
}
Person::Person(char* n, char g, int a)
:name(n), gender(g), age(a)
{
}
void printInfo(Person p){
cout << "Name: " << p.name << endl;
cout << "Age: " << p.age << endl;
cout << "Gender: " << p.gender << endl;
}

int main()
{
Person p1(); // this results in an error
printInfo(p1);

Person p2("Max", 'm', 18); // this results in the second warning
printInfo(p2);

return 0;
}

最佳答案

您遇到了 most vexing parse .

Person p1(); 声明了一个名为 p1 的函数,它返回一个 Person 并且不接受任何参数。如果您想默认构造一个名为 p1Person 对象,只需说 Person p1;

关于c++ - 错误 : could not convert 'p1' from 'Person (*)()' to 'Person' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25287556/

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