游戏开发论坛

 找回密码
 立即注册
搜索
楼主: sky110101

[救助]关于C++中的继承

[复制链接]

1

主题

40

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2004-9-7 08:59:00 | 显示全部楼层

Re:[救助]关于C++中的继承

#include <iostream>
using namespace std;
class A
{
public:
        A(){}
        ~A(){}
        void setage(int x)
        {
                cout<<"Now we call setage from A"<<endl;
                age=x;
        }
        int getage() const
        {
                cout<<"Now we call getage from A"<<endl;
                return age;
        }
private:
        int age;
};

class B : public A
{
public:
        B(){}
        ~B(){}
};

int main()
{
        B sky;
        sky.setage(10);
        cout <<"After set sky's age now we get sky's current age:"<<endl;
        cout <<"sky : "<<sky.getage()<<endl;
        return 0;
}

输出结果如下:
Now we call setage from A
After set sky's age now we get sky's current age:
Now we call getage from A
sky : 10

1

主题

40

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2004-9-7 09:06:00 | 显示全部楼层

Re:[救助]关于C++中的继承

什么叫继承,儿子没有的东西问老子要,这就是继承,大家从代码可以看到,class B里面并没有setage(),getage()等函数,那么class B调用的这两个函数只能说调用了class B的父类class A的相关函数咯,所以下面的这个提示Now we call setage from A        <---由sky.setage(10);调用,执行的是class A的setage()函数,因此我们才会看到class A中的setage()函数才有的提示:"Now we call setage from A"

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-9-7 12:54:00 | 显示全部楼层

Re:[救助]关于C++中的继承

。。。。呵呵,看来大家还是对编程的一些基础东西没学牢啊。。。。
首先得弄明白什么叫数据段和代码段。
继承是共享代码,但是不共享数据。
父类的所有数据都会有一份复制在子类里面。

这样还有什么问题?

36

主题

382

帖子

498

积分

中级会员

Rank: 3Rank: 3

积分
498
发表于 2004-9-7 13:06:00 | 显示全部楼层

Re:[救助]关于C++中的继承

去站内ftp下载那个有个用故事讲解c++文章合集回来看看
叫什么名我记不清了。

另:学c++一定要有书,都说过n次了,不要怕花钱,没有好书你是白学,除时浪费时间。

另:先要搞明白,为什么要用c++,c不好么??类是为什么而存在的??什么叫面向对象,什么叫基于对象。各自的优缺点。这些这里都不给答案,自己去找吧。
提示:一本好书,或者一个好老师,除此之外,别无他路。网络?网络很有用。但我不对它的效果负责。

24

主题

229

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2004-9-7 18:22:00 | 显示全部楼层

Re:[救助]关于C++中的继承

b类肯定会有age变量的,只是不能用b的成员函数直接访问罢了。想访问的话,可以在b的成员函数中调用a的公有成员函数,间接操作。

其实,我一直不明白,为什么大家这么喜欢c++。仅仅因为写的代码少吗?用别人的类库很容易,可同时也隐藏了很多底层的东西,对于初学者(包括我)来说容易产生困惑。可能我学得不够深入吧,还是喜欢c,和底层贴近。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-9-7 19:59:00 | 显示全部楼层

Re:[救助]关于C++中的继承

C++的好处是提高开发效率,减少开发时产生的冗余。
并且可以用来设计一个良好的结构。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-9-7 20:24:00 | 显示全部楼层

Re:[救助]关于C++中的继承

越来越不敢肯定了,这几天在外地,回去看一下书。

0

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2004-9-8 10:38:00 | 显示全部楼层

Re:[救助]关于C++中的继承

我想这就是PROTECTED的意义所在。PRIVATE就是不乡让别人知道,
PROTECTED是想让儿子知道

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-9-9 00:33:00 | 显示全部楼层

Re:[救助]关于C++中的继承

大概想通了。
private成员的访问权只在A类的public里面,即使被B都继承了(setage方法和age成员都被继承了),其访问权不变,B类新增加成员对它没有访问权,而B类新增成员却可以访问继承过来的protected成员。也就是说private和protected对外一至,对内有区别。
不知道是不是这样的?

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-9-9 00:37:00 | 显示全部楼层

Re:[救助]关于C++中的继承

我其实也是才开始学的,什么都不懂。
C也学得不好。
觉得C++好是因为,我觉得C++模拟了现实中的东西,这种模拟有它独到解决问题的方便之处。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 08:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表