| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2997 人关注过本帖
标题:一个简单的问题,输出那里为什么不行
只看楼主 加入收藏
菜鸟想成长
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-27
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:3 
一个简单的问题,输出那里为什么不行
#include <iostream>
using namespace std;
class Student
{
private:
    int age;
    char *name;
public:
    Student(int,char *);
    Student()
    {
        cout<<"调用系统默认构造函数"<<endl;
    };
    void setname(int,char *);
        int Getage();
        char *Getname();
};
Student::Student(int m,char *n)
    {
        cout<<"调用自定义构造函数"<<endl;
        age=m;
        name=n;
    }
int Student::Getage()
{
    return age;
}
char * Student::Getname()
{
     return name;
}
void Student::setname(int m,char *n)
{
    age=m;
    name=n;
}

int main()
{
    int i;
    char mo,ww;
    Student stu[3]={Student(20,"ww")};
    stu[2].setname(18,"mo");
    for(i=0;i<3;i++)
    {
        cout<<"学生的年龄是:"<<stu[i].Getage()<<"学生的姓名是:"<<stu[i].Getname()<<endl;
    return 0;
}
搜索更多相关主题的帖子: private include public return 
2016-03-22 17:42
牧羊人94
Rank: 2
等 级:论坛游民
帖 子:14
专家分:41
注 册:2016-3-17
收藏
得分:6 
Student() :name("unknow"), age(0)
    {
        cout << "调用系统默认构造函数" << endl;
    };

你的默认构造函数未初始化!
2016-03-22 18:09
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:6 
楼主的代码看着太伤脑细胞,重写了代码

#include <iostream>
#include <string>

class Student{
    private:
        int age;
        std::string name;
    public:
        Student();
        Student(int m, const std::string & n);
        ~Student();
        void Show();
};

Student::Student()
{
    age = 0;
    name = " no name";
}

Student::Student(int m, const std::string & n)
{
    if (m < 0)
    {
        std::cout << "都没出身那来的年龄!" << std::endl;
    }   
    else
    {
        age = m;
        name = n;
    }
}

Student::~Student()
{
   
}

void Student::Show()
{
    std::cout<<"学生的年龄是:"<< age <<"   学生的姓名是:"<< name << std::endl;
}

int main()
{
    Student stu[2]={
        Student(20, "ww"),
        Student(18, "mo")
    };
   
    for(int i = 0;i < 2; i++)
    {
        stu[i].Show();
    }
    return 0;
}
2016-03-22 18:27
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:6 
回复 楼主 菜鸟想成长
name=n;
把构造函数和setname函数里面的这一句改成strcpy()函数试试
2016-03-23 15:34
快速回复:一个简单的问题,输出那里为什么不行
数据加载中...
 
   



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

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