| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:C++函数的 对象参数
只看楼主 加入收藏
baihongwu1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-12
结帖率:0
收藏
已结贴  问题点数:0 回复次数:1 
C++函数的 对象参数
#include <iostream.h>


class INT28
{
public:
    INT28(unsigned x)
    {
        if(x>0xfffffff)
        {
            cout<<"error INT28 initializer! \n";
            data=0;
        }
        data=x;
    }

    int   getbitl(int i)
    {
        if(i<1 || i>28)
        {
            cout<<"\nerror i="<<i<<endl;
            return -1;
        }

        int y=data>>(28-i);
        return y%2;
    }

    void ls()
    {
        int x=getbitl(1);
        data=data<<5;
        data=data>>4;
        data+=x;
    }

    void out()
    {
        for(int i=1;i<=28;i++)
            {
                cout<<getbitl(i);
                if(i%4==0) cout<<endl;
            }

        cout<<"\n\n";
    }

    unsigned data;        //32-4 bit
};


class INT56
{
public:
    INT56(INT28 h, INT28 l)//??INT28????????
    {
        hi=h;lo=l;
    }

    int   getbitl(int i)
    {
        if(i<1 || i>56)
        {
            cout<<"\nerror i="<<i<<endl;
            return -1;
        }
        if(i<=28)
        {
            int y=hi.data>>(28-i);
            return y%2;
        }
        else
        {
            int y=lo.data>>(56-i);
            return y%2;
        }
    }


    void out()
    {
        for(int i=1;i<=56;i++)
            {
                cout<<getbitl(i);
                if(i%4==0) cout<<endl;
            }

        cout<<"\n\n";
    }

    INT28 hi, lo;        //28+28 bit
};

void main()
{

}


以上程序编译后有如下出错信息,该如何解决?

--------------------Configuration: ex - Win32 Debug--------------------
Compiling...
ex.cpp
e:\i\ls\ex.cpp(55) : error C2512: 'INT28' : no appropriate default constructor available
e:\i\ls\ex.cpp(55) : error C2512: 'INT28' : no appropriate default constructor available
Error executing cl.exe.

ex.exe - 2 error(s), 0 warning(s)



搜索更多相关主题的帖子: include public return 
2011-10-12 17:25
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:20 
你定义INT28(unsigned x)时候没有给x赋初值
当你实例化类的时候,编译器调用你的构造函数,却不知道x的值,所以无法构造相应的对象。

改成INT28(unsigned x=0)

偶是菜鸟鸟偶惧WHO?!!!!
2011-10-12 18:40
快速回复:C++函数的 对象参数
数据加载中...
 
   



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

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