| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3885 人关注过本帖
标题:关于类与对象的构造函数的问题
只看楼主 加入收藏
八半个桑
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2016-4-15
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
关于类与对象的构造函数的问题
程序代码:
//给一个圆桶刷油漆的价钱
#include <iostream>
using namespace std;
class box
{
private:
    float h;
    float r;
    float v;
    float s;
    float w;
    bool tf;
    float color[3];
    int i;
    
public:
    float volume(float h,float r);
    float zong();
    float area(float h,float r,bool tf);
    box(int z,int x,int f);
    box();
};
float box::volume(float h,float r)
{
    v = h*r*r*3.14;
    return v;
}
float box::area(float h,float r,bool tf)
{
    if (tf)
        s = 2 * 3.14*r*h + 2 * 3.14*r*r;
    else
        s = 2 * 3.14*r*h + 3.14*r*r;
    return s;

}
float box::zong()
{
    cout<<"油漆颜色(0-红色,1-蓝色,2-绿色)"<<endl;
    cin>>i;
    w = s*color[i];
    return w;
}
box::box()
{}
box::box(int z,int x,int f)
{
    color[0]=z;
    color[1]=x;
    color[2]=f;
}
void main()
{
    box m;
    float a,b,d;
    bool c;
    box(3,4,5);
    cout << "请输入该圆桶的高度和半径(单位:米):" << endl;
    cin >> a >> b;
        cout<<"该圆桶体积为"<<m.volume(a,b)<<" m3"<<endl;
    cout << "有盖子吗?(有-1,无-0)" << endl;
    cin >> c;
    m.area(a,b,c);
    d=m.zong();
    cout <<"总造价为:"<<d<<""<<endl;

}[local]1[/local]

为毛结果会是这样  哪里出问题了?
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-4-20 22:05编辑过]

搜索更多相关主题的帖子: include color 
2016-04-20 22:04
c974288432
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:44
专家分:104
注 册:2015-7-18
收藏
得分:20 
    box m(3,4,5);
    float a,b,d;
    bool c;
  //  box(3,4,5);


2016-04-21 20:23
c974288432
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:44
专家分:104
注 册:2015-7-18
收藏
得分:0 
你试试  
http://baike.
1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。

2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。

3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的。

4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。

5.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。
2016-04-21 20:25
八半个桑
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2016-4-15
收藏
得分:0 
回复 2楼 c974288432
天啊,赋值都赋错了   明白了明白了
2016-04-22 22:47
快速回复:关于类与对象的构造函数的问题
数据加载中...
 
   



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

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