VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 652|回复: 2

[求助] 程序运行时,输入一个数据后就弹出对话框表示停止工作

[复制链接]
84_avatar_middle
在线会员 发表于 2016-10-24 23:37:25 | 显示全部楼层 |阅读模式
3驿站币
首先出现错误no appropriate default constructor available,加了一个不带参数的构造函数。编译表示没错,开始运行,输入一个数据后,弹出对话框:停止工作。
程序如下:
#include<iostream>
#include<string>
using namespace std;
class Car{
private:
        char * colour;
        float speed;
public:
        Car()
        {
        }
        Car(char * c,float s)
        {
        colour=new char[strlen(c)+1];
        strcpy(colour,c);
        speed=s;
        }
    void input(char * c,float s)
        {cout<<"colour:"<<endl;
        cin>>colour;
         cout<<"speed:"<<endl;
         cin>>speed;
        }
        friend void disp(Car &);
        ~Car()
        {delete colour;}
};
void disp(Car &x)
{cout<<"车辆颜色:"<<x.colour<<"速度:"<<x.speed<<endl;
}
int main()
{
        char * x;
        float y;
        Car c;
        c.input(x,y);
        disp(c);
        return 0;
}
真的不知道哪里错了。。。拜托帮帮忙了。。/(ㄒoㄒ)/~~





上一篇:求破软件,破了秒评 ~
下一篇:论坛的那位大牛有数字签名的 联系我
74_avatar_middle
在线会员 发表于 2016-10-25 09:03:34 | 显示全部楼层
input函數中 使用的 colour 變量 沒分配內存
自己從新去學下 基礎 感覺你 根本沒理解 程序如何 運行 和構造函數 是怎麼回事 (否則不會寫出這樣的東西)
94_avatar_middle
在线会员 发表于 2016-10-28 16:13:37 | 显示全部楼层
本帖最后由 tym111 于 2016-10-28 16:16 编辑

如果LZ的意思是用input函数实现有参构造函数的功能的话,只需要把有参构造的函数体复制过来即可
    void input(char * c,float s)
        { colour=new char[strlen(c)+1];
        strcpy(colour,c);
        speed=s;
        }

调用还是跟有参构造一样
Car c;
c.input("asd",123);
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-27 16:29

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表