问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

大一学习C++语言,有道题老是提示错误啊啊啊啊

提问网友 发布时间:2023-10-24 10:44
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
4个回答
热心网友 回答时间:2024-04-29 23:18

#include <iostream>

#include <string>

using namespace std;

class student

{

private:

       int num;

       string name;

       string sex;

public:

       student(){num=1;name="Tom";sex="BOY";}

       void display()

       {

              cout<<"thestudent's information is:"<<endl;

              cout<<"num   "<<num<<endl;

              cout<<"name   "<<name<<endl;

              cout<<"sex   "<<sex<<endl;

       }

       int get_num(){return num;}

       string get_name(){return name;}

       string get_sex(){return sex;}

};

class teacher

{

private:

       int num;

       string name;

       string sex;

       string teach;

public:

      void  set_teacher(student &s){num=s.get_num();name=s.get_name();sex=s.get_sex();}//here

       void display()

       {

              cout<<"theteacher's information is:"<<endl;

              cout<<"num   "<<num<<endl;

              cout<<"name   "<<name<<endl;

              cout<<"sex   "<<sex<<endl;

       }

};

int  main()

{

       student s1;

       teacher t1;

       s1.display();

       cout<<"aftergraate from the school and become a teacher"<<endl;

       t1.set_teacher(s1);

       t1.display();

       return 0;

}

热心网友 回答时间:2024-04-29 23:18
#include <iostream>
#include <string>
using namespace std;
class Student{
private:
    int num;
    string name;
    string sex;
public:
    //Teacher访问了Student的私有属性,必须作为friend
    friend class Teacher;    
    Student() {
        num=1;            //应该这么写!
        name="Tom";    //应该这么写!
        sex="BOY";    //应该这么写!
    }
    void display(){
        cout<<"thestudent's information is:"<<endl;
        cout<<"num "<<num<<endl;
        cout<<"name "<<name<<endl;
        cout<<"sex "<<sex<<endl;
    }
};

class Teacher{
private:
    int num;
    string name;
    string sex;
    string teach;
public:
    //你写的这个是“构造函数”,不能调用的
    Teacher(const Student &s){
        num=s.num;    //访问了Student的私有属性!!!
        name=s.name;    //访问了Student的私有属性!!!
        sex=s.sex;        //访问了Student的私有属性!!!
    }
    void display(){
        cout<<"theteacher's information is:"<<endl;
        cout<<"num "<<num<<endl;
        cout<<"name "<<name<<endl;
        cout<<"sex "<<sex<<endl;
    }
};
int main(){
    Student s1;
    s1.display();
    cout<<"after graate from the school"
    <<"and become a teacher"<<endl;
    Teacher t1(s1);    //你写的是构造函数,所以只能这么用
    t1.display();
    return 0;
}
//最后勉强可以用了,但是你写的Teacher(const Student &s)函数是个构造函数
//只能在构造Teacher的时候用,所以要Teacher t1(s1);
//
//真正要转换是要在Student里面实现operator Teacher();

热心网友 回答时间:2024-04-29 23:19
class student // student 声明在teacher之前,不然在teacher里面将不知道student为什么,也就不能对其操作
{
private:
int num;
string name;
string sex;
public:
student(){
num=1 ;
name = "Tom" ;
sex = "BOY" ;
}

void display()
{
cout<<"thestudent's information is:"<<endl;
cout<<"num "<<num<<endl;
cout<<"name "<<name<<endl;
cout<<"sex "<<sex<<endl;
}

friend class teacher ; //声明为student类的友元类以便在class teacher中能访问student的私有成员
};

class teacher
{
private:
int num;
string name;
string sex;
string teach;
public:
teacher():num(0), name("undefined"), sex("undefined"), teach("undefined"){

}

teacher(student&s){ // 这里我改了一点,按照意思应该是这样吧
num = s.num;
name = s.name ;
sex = s.sex ;
}

void display(){
cout<<"the teacher's information is:"<<endl;
cout<<"num "<<num<<endl;
cout<<"name "<<name<<endl;
cout<<"sex "<<sex<<endl;
}
};
热心网友 回答时间:2024-04-29 23:19
student是后面才定义的,但是编译器不知道,所以它认为没有定义导致出错。一般可以先声明,也就是在class teacher前面加上class student;
或者把class student的定义放在teacher前面。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

C++问题,定义一个Teacher(教师)类和一个Stude... 包头市九原区市民大厅到松石国际城怎么走 闲时流量是什么时候才开始算的?晚上几点到几点???我的是广东...1 包头松石国际29栋楼五证齐全有房本吗1 华为p40有没有朗读微信文字的功能? 春天的山水作文2 液晶电视打不开怎么办?128 给远方朋友的一封信,把我春节回到学校所见所闻的作文8 华为p40屏幕朗读怎么退出?23 平安保险公司有做养老保险项吗??好不好的??信誉怎么样??4 浏览器视频无法打开怎么解决1 阳台做洗衣柜,水管留多高图片 想做洗衣柜,水阀过高怎么处理 高速公路自动收费ECT上海哪里有办理56 健身房营销手段有哪些?21 中国移动的销售渠道主要包括哪些1 IO元一5元3方角等于几 求高手写个玩天龙八部能四开的配置单. 贵求天龙八部4开配置…电脑小白求大神帮帮忙 求柯南(新一)穿和服图片! 一道关于C++类型转换问题(类类型之间的转换) 朋友被封,怎么帮他解封235 分别定义Teacher(教师类)和Cardre(干部类) 朋友被封怎么帮助解封78 c++设计一个基类person,包含name成员,由它派生出... 怎样注册新的 具体操作步骤 我的封过,朋友的封了,我需要多久才能恢复帮他解封... 求弹弹堂里的歌2 为什么讨厌阿紫(1)3 53度飞天茅台酒外包装盒瓶身的条形码不对应19 名侦探柯南里新一出现在第几集215 柯南 新一变回来 我家阳台就只有一个水龙头,现在想装个洗衣柜,怎么解决洗衣柜和...25 洗衣柜和洗衣机水龙头装高了怎么做 墙上水龙头高按不了洗衣柜该怎么办5 寻找好听的日语动漫歌曲...最好附上动漫名字,满意在+10078 深圳的移动卡,晚上闲时流量是几点到几点? 英雄联盟RNG战队是哪个国家的?2 英雄联盟战队rng原来叫什么名字359 老板监控看到经理在玩手机,截屏发到管理群了,是什么意思
Top