注册 登录
编程论坛 C++教室

想知道出了什么问题???????

李猛 发布于 2014-04-22 21:07, 705 次点击
#include <iostream>
#include <string>
using namespace std;
class people
{
private:
    char name[11];
    char number[7];
    char sex[3];
    char id[16];
public:
    people(char *n,char *u,char *s,char *i);
    void set();
    void display();
};
people::people(char *n,char *u,char *s,char *i)
{
    strcpy(name,n);
    strcpy(number,u);
    strcpy(sex,s);
    strcpy(id,i);
}
void people::set()
{
    int i;
    cout<<"input name,number,sex,id"<<endl;
    cout<<"nume:";
    for(i=0;i!='\r';i++)
    {
        cin>>name[i];
    }
    cout<<"number:";
    for(i=0;i!='\r';i++)
    {
        cin>>number[i];
    }
    for(i=0;i!='\r';i++)
    {
        cin>>sex[i];
    }
    for(i=0;i!='\r';i++)
    {
        cin>>id[16];
    }
   
   
}
void people::display()
{
    cout<<name<<"\t"<<number<<"\t"<<sex<<"\t"<<id<<endl;
}
int main()
{
    int i;
    people p[1];
    for(i=0;i<1;i++)
    {
        
        p[i].set();
    }
    for(i=0;i<1;i++)
    {
        p[i].display();
    }
    return 0;
}



C:\Users\Administrator\Desktop\people.cpp(55) : error C2512: 'people' : no appropriate default constructor available
8 回复
#2
李猛2014-04-22 21:16
是不是构造函数没有形参值?应该怎么改?
#3
hubinyes2014-04-22 21:25
people p[1];初始化对象时,找不到默认无参构造函数。你的构造函数是有形参的。
#4
李猛2014-04-22 21:40
回复 3 楼 hubinyes
应该怎么改呢?谢谢
#5
hubinyes2014-04-22 22:53
在写个无参构造函数就ok
#6
鸥翔鱼游2014-04-23 13:00
观摩技术性回复
#7
eqyy3802014-04-24 10:53
i!=′╲r′是什么意思
#8
bsmehj2014-04-26 19:20
问题出在你定义的类的构造函数,你这段代码声明people对象时候要输入构造函数的参数
#9
l34562014-04-27 15:26
public里添一个people();无参的构造函数,然后再定义一个people::people()
1