| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 289 人关注过本帖
标题:[求助]一个带参的构造函数问题,关于求长方柱体积的。
收藏  订阅  推荐  打印 
小四
Rank: 1
等级:新手上路
帖子:14
积分:248
注册:2007-6-21
[求助]一个带参的构造函数问题,关于求长方柱体积的。

#include<iostream>
using namespace std;
class Box{

public:
Box(int,int,int);
int volume();

private:
int height;
int width;
int length;


};

Box::Box(int h,int w,int len){

height=h;
width=w;
length=len;

}

int Box::volume(){
return(height*width*length);

}


int main(){

Box box1(10,10,10);

cout<<box1.volume()<<endl;

return 0;

}

如果将主函数改成如下

int main() {

Box box1;

cin>>h>>w>>len;
cout<<box1.volume()<<endl;

return 0;
}

为什么不行?

先谢过各位达人了。

[此贴子已经被作者于2007-10-10 22:49:33编辑过]

搜索更多相关主题的帖子: int  方柱  Box  函数  构造  
2007-10-10 22:48
Janlex
Rank: 3Rank: 3
等级:中级会员
威望:6
帖子:303
积分:3198
注册:2006-9-12

cin>>h>>w>>len;是从键盘输入到缓冲区. 而并没传参到Box类中.

也就是你定义的对象box1, 怎么知道h, w, len是传给他的.

★★★★★欢迎光临我的博客 ★★★★★
http://www.ozd.cn
2007-10-10 23:19
kisscjy
Rank: 3Rank: 3
等级:中级会员
帖子:217
积分:2322
注册:2007-4-9

你的h, w, len 都没有作为参数传给Box1,
那怎么输出他的体积呢???


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-10-11 00:22
TenY
Rank: 2
来自:重庆大学
等级:注册会员
帖子:41
积分:524
注册:2007-3-18

主函数里的h w len, 与你box1那个类里的参数没有一点区别,你要让box1获取到,才有用...

2007-10-11 10:14
zhb_ice
Rank: 2
等级:注册会员
帖子:57
积分:688
注册:2007-10-6

lz的都说的差不多了
你只把三个数输入个了三个变量
这个三个变量的值与类内部的没有关系的


2007-10-11 17:48
忘记喧嚣
Rank: 2
等级:注册会员
帖子:142
积分:1586
注册:2007-10-7

他们的意思就是说 参数名 h w len 在内的任何函数的里都可以用.不会发生冲突.

也就是说参数的作用只限与函数内.不能在外部实现.除非对象的实参传参数给他
2007-10-11 22:41
海子星竹
Rank: 2
等级:注册会员
威望:1
帖子:58
积分:722
注册:2007-9-4

你写的构造函数一定要有参数传入才行

int main()
{
int h, w, len;

cin>>h>>w>>len;
Box box1(h,w,len);
cout<<box1.volume()<<endl;

return 0;
}

2007-10-13 15:26
爱以走远
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:52
帖子:7495
积分:75168
注册:2007-3-16

当你第一拉一个构造函数
则系统就不会在分配构造函数拉
因为构造函数是在声明对象的时候就要执行
你定义的对象没参数 所以就错拉.. .

   好好活着,因为我们会死很久!!!
2007-10-13 16:55
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.078868 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved