#include<iostream>
using namespace std;
class Complex
{
public:
Complex(int a, char* b, int c, char* d)
{
number = a;
name = new char[strlen(b) + 1];
strcpy(name, b);
grade = c;
d = new char(strlen(d) + 1);
strcpy(arrey, d);
};
~Complex()
{
if(name!=NULL)
delete[]name;
if (arrey != NULL);
delete[]arrey;
}
private:
int number;
char* name;
int grade;
char* arrey;
};
int main()
{
Complex f(100,"孙", 3, "一");
}
两个问题,一是析构函数中 if (arrey != NULL);最后的分号去掉
二是main里面f函数参数中的逗号有些事全角字符,重新改一下,特别是3后面的逗号。
如果问题解决,请采纳
Complex这个类可能与系统类同名了,改个名称试试。
我vs2010没有报错,是在不行就定义一个int a=100,然后再
int main()
{
int a = 100;
Complex f(a,"孙", 3, "一");
}
另外,析构函数有个问题(下面的代码中我加了注释):
~Complex()
{
if(name!=NULL)
delete[]name;
if (arrey != NULL); //这句行尾的;去掉
delete[]arrey;
}
如果还有问题,尝试把类名改一下,如有帮助,请采纳一下,谢谢。
找到了解决办法,在构造函数里字符前加comst..
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632