| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3720 人关注过本帖
标题:[求助]46 only constructors take base initializers
只看楼主 加入收藏
srzdy888
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-16
收藏
 问题点数:0 回复次数:3 
[求助]46 only constructors take base initializers
class Circle:public Point
{
public:
Circle(float x=0,float y=0,float r=0);
void setRadius(float);
float getRadius()const;
virtual float area() const;
virtual void shapeName() const {cout<<"Circle";}
friend ostream&operator <<(ostream&,const Circle &);
protected:
float radius;
};
Circle::Circle(float x,float y,float r):Point(x,y),radius(r){}
void Circle::setRadius(float r):radius(r){}//这里就是问题所在
float Circle::getRadius() const{return radius;}
float Circle::area() const {return 3.14159*radius*radius;}
ostream&operator<<(ostream &output,const Circle &c)
{output<<"["<<c.x<<","<<c.y<<"]r="<<c.radius;
return output;
}

哪位大哥能帮我看看啊!
帖子名字就是dev-c++提示的错误
不好意思 没有说明白

[此贴子已经被作者于2007-4-19 12:12:17编辑过]

搜索更多相关主题的帖子: initializers float base take constructors 
2007-04-19 00:30
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
问题??

Fight  to win  or  die...
2007-04-19 10:03
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
收藏
得分:0 

在没有const限制的前提下,自己类的成员函数访问自己的类的变量是允许的,你的问题是初始化列表使用错误

除了构造函数初始化成员变量或私有变量是const修饰的时候,普通函数不能用初始化列表来赋值的,把赋值过程改到函数体里就可以了

void Circle::setRadius(float r)
{
radius=r;
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-04-19 13:03
srzdy888
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-16
收藏
得分:0 
通过了 太感谢了
游侠大哥真的很乐意帮助我们这些初学者
感谢了

2007-04-19 13:08
快速回复:[求助]46 only constructors take base initializers
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011835 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved