标题:大虾们帮看看哪错了
取消只看楼主
淑人公子
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-11-27
结帖率:0
已结贴  问题点数:10 回复次数:3 
大虾们帮看看哪错了
#include<iostream>
using namespace std;
class Teacher{
private:
    char name[10];
    int age;
    char title[10];
public:
    Teacher(char name[10]=0,int b=0,char title[10]=0){}
    void get(){
    cout<<"input name"<<endl;
    cin>>name;
    cout<<"input age"<<endl;
    cin>>age;
    cout<<"input title"<<endl;
    cin>>title;
    }
   
    void display(){
     cout<<"the name is"<<name<<endl;
     cout<<"the age is"<<age<<endl;
     cout<<"the title is"<<title<<endl;
    }

};
class Cadre{
public:
Cadre(char name[10]=0,int b=0,char post[10]=0){}
    get(){
    cout<<"input name"<<endl;
    cin>>name;
    cout<<"input age"<<endl;
    cin>>age;
    cout<<"input post"<<endl;
    cin>>post;
    }
   
    display(){
     cout<<"the post is"<<post<<endl;
    }
private:
    char name[10];
    int age;
    char post[10];
};
class Teacher_Cadre:public Teacher,public Cadre{
private:   
    int wage;   
public:
Teacher_Cadre(int wage=0){}
    void show(){
    Teacher::display();
    }
    getwage(){
    cout<<"input wage"<<endl;
    cin>>wage;
    }
    put(){
    cout<<"the wage is"<<wage<<endl;
    cout<<"the post is"<<endl;
Cadre::display();
    }
};
main(){
 Teacher_Cadre tc;
 Teacher t1;
 t1.get();
tc.show();
Cadre c1;
 c1.get();
 tc.getwage();
  tc.put();
}
搜索更多相关主题的帖子: private display include public title 
2010-11-27 13:41
淑人公子
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-11-27
得分:0 
#include<iostream>
using namespace std;
class Teacher{
private:
    char *name;
    int age;
    char *title;
public:
   Teacher(char a[10]=0,int b=0,char c[10]=0):name(a),age(b),title(c){}
    void get(){
    cout<<"input name"<<endl;
    cin>>name;
    cout<<"input age"<<endl;
    cin>>age;
    cout<<"input title"<<endl;
    cin>>title;
    }
   
    void display(){
     cout<<"the name is"<<name<<endl;
     cout<<"the age is"<<age<<endl;
     cout<<"the title is"<<title<<endl;
    }
};
class Cadre{
public:

Cadre(char a[10]=0,int b=0,char c[10]=0):name(a),age(b),post(c){}
    get(){
    cout<<"input name"<<endl;
    cin>>name;
    cout<<"input age"<<endl;
    cin>>age;
    cout<<"input post"<<endl;
    cin>>post;
    }
    display(){
     cout<<"the post is"<<post<<endl;
    }
private:
    char *name;
    int age;
    char *post;
};
class Teacher_Cadre:public Teacher,public Cadre{
private:   
    int wage;   
public:
    Teacher_Cadre(char a[10]=0,int b=0,char c[10]=0,char d[10]=0,int e=0):Teacher(a,b,c),Cadre(a,b,d),wage(e){}
    void show(){
    Teacher::display();
    }
    getwage(){
    cout<<"input wage"<<endl;
    cin>>wage;
    }
    put(){
    cout<<"the wage is"<<wage<<endl;
    cout<<"the post is"<<endl;
Cadre::display();
    }
};
 void main(){
Teacher_Cadre tc;
tc.Teacher::get();
tc.show();
tc.Cadre::get();
tc.getwage();
  tc.put();
}
这样还是错误,但如果把main换为int main()
{
    TeacherCadre teachercadre("xiaoqing",12,"boshi","teacher",1200);
    teachercadre.show ();
    return 0;
}
就对了,为什么只能初始化时赋值,不能调用函数输值啊
2010-11-27 15:57
淑人公子
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-11-27
得分:0 
void main(){
Teacher_Cadre tc;
tc.Teacher::get();
tc.show();
tc.Cadre::get();
tc.getwage();
  tc.put();
}
为什么main这样写时不能输入?name的地址和a数组的地址一样,应该可以存入长度为9的字符串的但为什么提示错误
2010-11-27 19:04
淑人公子
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-11-27
得分:0 
在构造函数中 Teacher(char a[10]=0,int b=0,char c[10]=0):name(a),age(b),title(c){}a[10]是形参,并没有分配空间所以a[0]指向一个任意的地址,所以不能用get向里面输入,只能用构造函数初始化
2010-11-28 15:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327061-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.407416 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved