| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1483 人关注过本帖
标题:指针传参的问题,请看代码
只看楼主 加入收藏
linren
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-12-11
收藏
得分:0 
#include "iostream.h"
#include "string.h"

/*首先定义一个动物类作为基类*/
class Dongwu
{
protected:
    char* Name;
    char* Aihao;
public:
    Dongwu();
    ~Dongwu();
    void SetName(char* name);
    void SetAihao(char* aihao);
    void xianshi();
};

Dongwu::Dongwu()
{
    Name=new char[20];
    Aihao=new char[20];
}

Dongwu::~Dongwu() //注意要回收动态创建的空间
{
    delete [] Name;
    delete [] Aihao;
}

void Dongwu::SetName(char* name)
{
    strcpy(Name,name);
}

void Dongwu::SetAihao(char* aihao)
{
    strcpy(Aihao,aihao);
}

void Dongwu::xianshi()
{
    cout<<"基类显示:"<<'\t';
    cout<<"动物类中,一个名为:"<<Name<<"的未知的动物,爱好:"<<Aihao<<'\n';
}

/*创建一个继承与动物类的 狗类 Dog类*/
class Dog:public Dongwu
{
protected:
    int* Age;
public:
    Dog();
    ~Dog();
    void DogAge(int* age);
    void Dogxianshi();
};

Dog::Dog()
{
    Age=new int; //这里是这样子
    Name=new char[20];
    Aihao=new char[20];
}

Dog::~Dog() //注意要回收动态创建的空间
{
    delete Age;
}

void Dog::DogAge(int* age)
{
    *Age=*age; //这里是这样子
}

void Dog::Dogxianshi()
{
    cout<<"Dog中显示"<<'\t';
    cout<<"狗类中,一个名为:"<<Name<<"的狗,平时喜欢:"<<Aihao<<"今年:"<<*Age<<"岁了"<<'\n';  //这里是这样子
}

int main(int argc, char* argv[])
{
    Dog dog;
    dog.SetName("皮皮");
    dog.SetAihao("咬人");
    int a=20; //这里是这样子
    dog.DogAge(&a); //这里是这样子
    dog.xianshi();
    dog.Dogxianshi();
    
    return 0;
}

[bo]PS:[/bo]
皮皮真的是很长寿啊……

生活就是一个七日接着又一个七日
2008-07-11 23:33
冥玫怪盗
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-7-11
收藏
得分:0 
多谢各位前辈不吝赐教,我受益匪浅!以后请多多关照小弟!
2008-07-12 16:20
水中无月
Rank: 1
等 级:新手上路
帖 子:190
专家分:9
注 册:2008-6-17
收藏
得分:0 
那个,我只是帮助解决编译的问题。至少象我那样写编译就没问题了吧
我不是说的吗,具体怎么写还要看代码的用途。我曾经就遇到象我上面那种方法写的代码

十里平湖霜满天,寸寸青丝愁华年,对月形单望相互,只羡鸳鸯不羡仙.
2008-07-12 17:08
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
回复 10# mqh21364 的帖子
不是,我是说无月的强制转换... 你的这是类型不匹配 - -

樱花大战,  有爱.
2008-07-12 17:38
我是杨过
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-11-23
收藏
得分:0 
帅哥,因为你传递的是一个常量(const型),而函数中赋值的Age是一个int * 类型,所以不允许!

不要幻想,因为那从来不会是真的!
2008-07-12 21:10
快速回复:指针传参的问题,请看代码
数据加载中...
 
   



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

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