admin管理员组文章数量:1565292
下面这个是网上摘抄的示例:(http://zhidao.baidu/question/161985869.html)
#include<iostream.h>
#include<string.h>
#define NUM 100
class Student
{
private:
int name;
int sex;
int birthday;
int phone;
public:
Student(int n,int s,int b,int p);
~Student();
void input();
void output();
};
Student::Student(int n,int s,int b,int p)
{
cout<<"Exeduting constructor````"<<endl;
name=n;
sex=s;
birthday=b;
phone=p;
cout<<name<<','<<sex<<','<<birthday<<','<<phone<<endl;
}
Student::~Student()
{
cout<<"Exeduting destructor````"<<endl;
cout<<name<<'_'<<sex<<'_'<<birthday<<'_'<<phone<<endl;
}
void Student::input()
{
cout<<"姓名: "<<" ";
cin>>name;
cout<<"性别(0代表女生,1代表男生)"<<" ";
cin>>sex;
cout<<"出生年月日:"<<" ";
cin>>birthday;
cout<<"联系电话:"<<" ";
cin>>phone;
}
void Student::output( )
{
cout<<"输出信息:"<<endl;
cout<<name<<","<<sex<<","<<birthday<<","<<phone<<endl;
}
void main(int n,int s,int b,int p)
{
Student stu[NUM];
int i,j;
cout<<"input student number,number<=100:"<<endl;
cin>>j;
for (i=0;i<j;i++)
{
cout<<"请按照姓名、性别、出生年月日、联系电话的顺序输入第"<<"i+1"<<"个学生信息"<<endl;
stu[i].input();
stu[i].output();
}
}
问题表现:编译时出现类 Student : no appropriate default constructor available
问题解决:
增加一个缺省的构造函数Student()就可以了。 你在Student stu[NUM]时创建对象,但是没有给初始化的参数,所以程序就需要缺省的构造函数。如果你不声明Student(int n,int s,int b,int p);那么系统会自动为你创建一个缺省的构造函数;但是你声明了,系统就不自动创建了,需要你自己手动添加。
所以具体讲,
在 定义 Student stu[NUM] 前,必须完成一下步骤,在 Student类的h文件里,添加 Student();声明。然后在Student类的CPP文件里添加 Student(){}。
问题得以解决!
本文标签: 变量定义VCDefaultconstructor
版权声明:本文标题:VC 之定义类变量时出现 no appropriate default constructor available 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726299294a1064949.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论