c++ 高手 快进啊

来源:百度知道 编辑:UC知道 时间:2024/06/10 14:51:38
这段代码
总是编译不过去 但自己不会改了
高手能否帮我看看 帮我改好 并说明一下 谢谢了
PS:我只是想把它给 编译通过 只要不报错就行
#include <stdio.h>
#include <iostream>

class Shape {
public:
Shape() {}
~Shape() {}
void setArea(double a) {area = a;}
private:
double area;
};

class Circle: public Shape {
Circle() { texture = malloc(TEXTURE_SIZE); }
~Circle() { free(texture); }
bool operator!=(Circle &r);
private:
TEXTURE_DATA *texture;
Circle(Circle &r) { texture = strdup(r.texture); }
Circle& operator=(Circle &r) { if (r != *this) texture = strdup(r.texture); return *this;}
};

void foo() {
Shape *newObj = new Circle;
delete newObj;
}
int main()
{

return 0;
}

#include <stdio.h>
#include <iostream>

/*这里还是按照你自己的定义,我只是为了编译通过*/
typedef char TEXTURE_DATA;
#define TEXTURE_SIZE 10
/*这里还是按照你自己的定义,我只是为了编译通过*/

class Shape {
public:
Shape() {}
~Shape() {}
void setArea(double a) {area = a;}
private:
double area;
};

class Circle: public Shape
{
public:/*如果不加public,默认为私有,外边就不能访问了*/
Circle() { texture = (TEXTURE_DATA *)malloc(TEXTURE_SIZE); } //这个malloc前面要加上类型转换,malloc返回的是void*
~Circle() { free(texture); }
bool operator!=(Circle &r);
private:
TEXTURE_DATA *texture;
Circle(Circle &r) { texture = strdup(r.texture); }
Circle& operator=(Circle &r) { if (r != *this) texture = strdup(r.texture); return *this;}
};

void foo() {
Shape *newObj = new Circle; //调用默认构造函数
delete newObj;
}
int main()
{

return 0;
}

出去TEXTURE_