我的构造函数有关于数组的问题!
在我的头文件中,我得到了这个(简化):
class Student
{
private:
int am;
char name[] ;
int grades[8];
}
在我的cpp文件中:
#include<iostream>
#include<cstdlib>
#include "Student.h"
using namespace std;
Student::Student()
{
}
Student::Student(int am , char name,int grades)
{
this->am=am;
this->name=name;
this->grades=grades;
}
我收到此错误
[错误]将'char *'分配给'char [0]'不兼容的类型
P.S:我已经在这个网站上搜索了答案,但我是c ++的新手,无法弄明白。
答案 0 :(得分:0)
将一个变量的值分配给另一个变量时,重要的是这些类型是兼容的。错误消息告诉您您正在尝试进行不兼容的分配。要弄清楚问题,请仔细查看变量的声明。类成员声明为
char name
但构造函数的参数声明为
char name[]
请注意,第一个是数组,但第二个是单个字符。解决当前错误的一种方法是更改参数声明以匹配成员字段:
std::string
但是,现在您将收到另一个错误,因为您无法将一个数组分配给另一个数组。相反,您必须一次复制一个角色。为了避免这种情况和其他并发症,我强烈建议您使用char[]
代替php artisan make:auth()
。
答案 1 :(得分:0)
char name[20];
或者您应该在构造函数中为它分配内存,如:
name = new char [20];
如果您动态分配内存,请不要忘记将其删除