标题:请教关于C++派生类的问题
只看楼主
天空微亮
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2012-12-19
结帖率:100%
已结贴  问题点数:10 回复次数:5 
请教关于C++派生类的问题
程序代码:
#include<iostream>
using namespace std;
class person    //人员类
{
protected:
    int age ;
    char* name;

public:
    person(int a,char n[10]);
};
person::person(int a,char n[10])    //构造函数的实现
{
    age=a;
    name=n;
}
class date    //日期类
{
private:
    int year;
    int month;
    int day;
public:
    date(int a,int b,int c);
    void show();
};
date::date(int a,int b,int c)    //构造函数的实现
{
    year=a;
    month=b;
    day=c;
}
void date::show()    //实现show
{
    cout<<year<<"-"<<month<<"-"<<day<<endl;
}
class student:public person        //学生类
{
private:
    date birthday;
    int ID;
    int score;
public:
    student(char n[10],int a,int b,int c,int d,int e,int f);
    void display();
};
student::student(char n[10],int a,int b,int c,int d,int e,int f):person(a,n[10]),birthday( b, c, d)    //构造函数的实现
{
    ID=e;
    score=f;
}
void student::display()    //实现display
{
    cout<<"Student's ID: "<<ID<<endl;
    cout<<"Student's name: "<<name<<endl;
    cout<<"Student's birthday :";
    birthday.show();
    cout<<endl;
    cout<<"Student's score: "<<score<<endl;
}

问题出在红色的那一行,error C2664: “person::person(int,char [])”: 不能将参数 2 从“char”转换为“char []”
请问要怎么改
搜索更多相关主题的帖子: person 
2013-04-12 23:20
天空微亮
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2012-12-19
得分:0 
怎么没变颜色,是加了下滑线的那行
2013-04-12 23:21
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:0 
怎么没变颜色,是加了下滑线的那行

你想表达什么, 下划线那行为什么没有变颜色???

人生是一场错过 愿你别蹉跎
2013-04-13 08:33
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:10 
问题就处在person(a,n[10]),你用基类数组初始化,但是n[10]代表什么呢?这样在形式参数中又不能表示数组。
我给你修改的如下,其中student函数的构造函数的参数应该a的位置放在数组前吧!你没有主函数,修改如下:
class student:public person        //学生类
{
private:
    date birthday;
    int ID;
    int score;
public:
    student(int a,char n[10],int b,int c,int d,int e,int f);
    void display();
};
student::student(int a,char n[10],int b,int c,int d,int e,int f):person(a,n),birthday(b,c,d)  //构造函数的实现
{
    ID=e;
    score=f;
}

Maybe
2013-04-13 11:07
天空微亮
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2012-12-19
得分:0 
回复 4楼 邓士林
谢谢 终于懂了
2013-04-13 12:37
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
得分:0 
回复 4楼 邓士林
那个person类中定义的 char *name;
在构造函数中需要给它分配内存空间吧
2013-04-13 14:03



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




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

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