VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1225|回复: 9

在线等~~

[复制链接]

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-2 19:00:01 | 显示全部楼层 |阅读模式
#include<iostream.h>
#include<string.h>
#define MAX 2
class student
{
        private:
           char name[20];
           char reseach[20];
           int no;
        public:
        student(char n[],char s[],int t)
         {
            strcpy(name,n);
            strcpy(reseach,s);
            no=t;
         }
                ~student(){}
           void ShowInfo()
           {
                   cout<<"学生:"<<name;
                cout<<"研究方向:"<<reseach;
                cout<<"学号:"<<no;
           }
};
class teacher
{
        private:
           int top;
           char name[20];
           student stu[MAX];
        public:
        teacher(char t[])
                {
                        top=0;
                        strcpy(name,t);
                }
        ~teacher()
                {
          // delete []stu;
                }
                void add(student &s)
                {
           stu[top]=s;
                   top++;
                }
           void getname()
           {
                   cout<<"老师:"<<name<<endl;
           }
           void ShowStudentInfo()
           {
                    for(int i=0;i<top;i++)
                        {
            stu[i].ShowInfo();
                        }
           }
};
void main()
{
        teacher t[]={teacher("Tom"),teacher("Marry")};
        student s1=("Pirlo","Java",100);
        student s2=("Gattuso","C++",101);
        student s3=("kaka","C",102);
        t[0].add(s1);
        t[0].add(s2);
        t[1].add(s3);
             for(int i=0;i<2;i++)
           {
                   t[i].getname();
                   cout<<"指导学生:";
           t[i].ShowStudentInfo();
           }
}       



D:\C++作业\那2个\zuoye1.cpp(32) : error C2512: 'student' : no appropriate default constructor available
D:\C++作业\那2个\zuoye1.cpp(61) : error C2440: 'initializing' : cannot convert from 'const int' to 'class student'
        No constructor could take the source type, or constructor overload resolution was ambiguous
D:\C++作业\那2个\zuoye1.cpp(62) : error C2440: 'initializing' : cannot convert from 'const int' to 'class student'
        No constructor could take the source type, or constructor overload resolution was ambiguous
D:\C++作业\那2个\zuoye1.cpp(63) : error C2440: 'initializing' : cannot convert from 'const int' to 'class student'
        No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.

zuoye1.obj - 4 error(s), 0 warning(s)
回复

使用道具 举报

0

主题

12

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-14 01:00:01 | 显示全部楼层
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
#define MAX 2
class student
{
        private:
           char name[20];
           char reseach[20];
           int no;
        public:
        student(char n[],char s[],int t)
         {
            strcpy(name,n);
            strcpy(reseach,s);
            no=t;
         }
                ~student(){}
                student()
                {

                }
           void ShowInfo()
           {
                   cout<<"学生:"<<name;
                cout<<"研究方向:"<<reseach;
                cout<<"学号:"<<no;
           }
};
class teacher
{
        private:
           int top;
           char name[20];
           student stu[MAX];
        public:
        teacher(char t[])
                {
                        top=0;
                        strcpy(name,t);
                }
        ~teacher()
                {
          // delete []stu;
                }
                void add(student &s)
                {
           stu[top]=s;
                   top++;
                }
           void getname()
           {
                   cout<<"老师:"<<name<<endl;
           }
           void ShowStudentInfo()
           {
                    for(int i=0;i<top;i++)
                        {
            stu[i].ShowInfo();
                        }
           }
};
void main()
{
        teacher t[]={teacher("Tom"),teacher("Marry")};
        student s1("Pirlo","Java",100);
        student s2("Gattuso","C++",101);
        student s3("kaka","C",102);
        t[0].add(s1);
        t[0].add(s2);
        t[1].add(s3);
             for(int i=0;i<2;i++)
           {
                   t[i].getname();
                   cout<<"指导学生:";
           t[i].ShowStudentInfo();
           }
}       
回复

使用道具 举报

0

主题

12

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-14 11:45:01 | 显示全部楼层
自己定义了构造函数 要注意添加个默认构造函数啊 我给的函数体现为空 你自己再根据需要改改
回复

使用道具 举报

0

主题

63

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-5-15 18:15:02 | 显示全部楼层
#include<iostream>
#include<string>
using namespace std;

#define MAX 2
class student
{
        private:
           char name[20];
           char reseach[20];
           int no;
        public:
                student()
                {
                        strcpy(name,"");
                        strcpy(reseach,"");
                        no=0;
                }
        student(char n[],char s[],int t)
         {
            strcpy(name,n);
            strcpy(reseach,s);
            no=t;
         }
                ~student(){}
           void ShowInfo()
           {
                   cout<<"name:"<<name;
                cout<<"reseach:"<<reseach;
                cout<<"no:"<<no;
           }
};
class teacher
{
        private:
           int top;
           char name[20];
           student stu[MAX];
        public:
                teacher()
                {
                        top=0;
                        strcpy(name, "");
                }
        teacher(char t[])
                {
                        top=0;
                        strcpy(name,t);
                }
        ~teacher()
                {
          // delete []stu;
                }
                void add(student &s)
                {
           stu[top]=s;
                   top++;
                }
           void getname()
           {
                   cout<<"teacher:"<<name<<endl;
           }
           void ShowStudentInfo()
           {
                    for(int i=0;i<top;i++)
                        {
            stu[i].ShowInfo();
                        }
           }
};
int main()
{
        teacher t[]={teacher("Tom"),teacher("Marry")};
        student s1("Pirlo","Java",100);
        student s2("Gattuso","C++",101);
        student s3("kaka","C",102);
        t[0].add(s1);
        t[0].add(s2);
        t[1].add(s3);
             for(int i=0;i<2;i++)
           {
                   t[i].getname();
                   cout<<"student:";
           t[i].ShowStudentInfo();
           }
          
        return 0;
}
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-5-16 13:45:01 | 显示全部楼层
1,这个是不对的。
teacher(char t[])

2,这个会构造MAX个student,构造失败,看看student构造函数把。
student stu[MAX]。

回复

使用道具 举报

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-20 16:45:01 | 显示全部楼层
第一个错误是没有默认的构造函数,我加上了,可后面这三个错误还有呀
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-21 15:45:01 | 显示全部楼层
teacher(char t[])
请高手说下为什么这个是错误的?
回复

使用道具 举报

0

主题

36

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-5-21 20:30:01 | 显示全部楼层
把错误的代码地方放上来,一个一个帮你解决,这样一下子放上来,头都晕了
回复

使用道具 举报

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-22 12:30:02 | 显示全部楼层
就是这几个,原代码在最上面,


student s1("Pirlo","Java",100);
        student s2("Gattuso","C++",101);
        student s3("kaka","C",102);
错误信息见上面
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-6-13 18:00:01 | 显示全部楼层
#include<iostream.h>
#include<string.h>

#define MAX 2

class student
{       
public:
        student()
        {
        }
       
        student(char n[],char s[],int t)
        {
                strcpy(name,n);
                strcpy(reseach,s);
                no=t;
        }

        ~student()
        {
        }

void ShowInfo()
           {
                   cout << "学生: "<< name << " "
                    << "研究方向: "<< reseach << " "
                        << "学号: "<< no << " "
                    << endl;
           }


private:
           char name[20];
           char reseach[20];
           int no;
};

class teacher
{
private:
           int top;
           char name[20];
           student stu[MAX];
public:

        teacher(char t[])
        {
                top=0;
                strcpy(name,t);
        }

        ~teacher()
        {
                // delete []stu;
        }

        void add(student& s)
        {
                stu[top]=s;
                top++;
        }

           void getname()
           {
                   cout<<"老师:"<<name<<endl;
           }

           void ShowStudentInfo()
           {
                   for(int i=0;i<top;i++)
                   {
                           stu[i].ShowInfo();
                           cout << endl;
                   }
           }
};
void main()
{
        teacher t[]={teacher("Tom"),teacher("Marry")};
//        student("Pirlo","Java",100);
        //        student("Gattuso","C++",101)
        //        student("kaka","C",102)
                t[0].add(student("Pirlo","Java",100));
            t[1].add(student("Gattuso","C++",101));
                t[1].add(student("kaka","C",102));
        for(int i=0;i<2;i++)
           {
                t[i].getname();
                cout<< endl;
                t[i].ShowStudentInfo();
                cout << endl;
           }
}       
这个样子是可以的,不过有点乱,自己再看看吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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