C++急问!!
请问下面这个程序哪里出错了啊??急啊,谢谢啊#include <iostream>
#include <cstring>
using namespace std;
class TwoDShape {
double width;
double height;
char name;
public:
TwoDShape(double w, double h, char *n) {
width = w;
height = h;
strcpy(name, n);
}
double getWidth() { return width; }
double getHeight() { return height; }
void setWidth(double w) { width = w; }
void setHeight(double h) { height = h; }
char *getname {return name;}
};
class Triangle : public TwoDShape {
char style; // now private
public:
Triangle(char *str, double w,
double h) : TwoDShape(w, h, "triangle") {
strcpy(style, str);
}
double area() {
return getWidth() * getHeight() / 2;
}
void style() {
cout<<"style is "<<style<<"\n";
}
};
int main()
{
Triangle t("right", 8.0, 12.0);
cout<<t.style()<<t.area();
return 0;
} 有谁救救我啊!◎!◎~ i think you should paste your errors first. 18行
char *getname {return name;}
少了()括号。 s.cc:36: error: declaration of `void Triangle::style()'
s.cc:22: error: conflicts with previous declaration `char Triangle::style' 楼主可以写一点编译一点,错误就好找啦! 看不懂!!! hjack 你应该说详细一点啊,呵呵。我们学校有很多初学者。失眠,唉。 调试ing...
[ 本帖最后由 iptton 于 2006-5-30 09:57 编辑 ] OK,
错误1:在4楼已说了,少了个括号。
错误2:变量style[] 和 方法void style() 有命名冲突。建议把方法style()改为getStyle()。
错误3:在main()中,cout<<t.style()<<t.area();会出错,因为t.style()里面也是一个cout<<操作,而是不返回一个变量值给main里的cout输出。
改正建议:
1.添上括号,
2.把void style()改为void getStyle()
3.在main里直接用t.getStyle()访问,输出style. 但是这样改之后在vc里可以编译通过。但在gcc里却不行。目前还想不明白为什么。 原帖由 hjack 于 2006-5-30 10:27 发表
但是这样改之后在vc里可以编译通过。但在gcc里却不行。目前还想不明白为什么。
gcc里面可没有vc的字符串类。
页:
[1]