| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3933 人关注过本帖
标题:C++中静态变量不能被继承,但是这个程序怎么看
只看楼主 加入收藏
xingbo2293
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2010-10-22
结帖率:33.33%
收藏
 问题点数:0 回复次数:5 
C++中静态变量不能被继承,但是这个程序怎么看
#include<iostream.h>
class A {
public:
    static int num;
};
int A:: num=100;

class B:public A {
public:
    int i;
    B(int m):i(m)
    {}
};

int main()
{
    B b(5);
    cout<<b.num;
    return 1;
}
如果说不能继承,便不能再B类中,所以不会得出b.num。然而下载却得到了b.num...
求指教
搜索更多相关主题的帖子: public 
2011-05-16 22:20
xingbo2293
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2010-10-22
收藏
得分:0 
没人说,我来说:静态变量是共享而不是继承,他可以被子类共享但是不能继承,不知道这样理解对吗?
收到的鲜花
2011-05-16 22:38
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
没有this指针的不能被继承 抓住这点就没有错

给段代码你测试下
程序代码:
#include<iostream>
using namespace std;

class A
{
public:
    static int num;
};
int A::num=100;

class B:public A
{
public:
    int i;
    B(int m):i(m)
    {}
};

int main()
{
    B b(5);

    cout << b.num << endl;
    b.num = 10;
    cout << b.num << endl;
    cout << B::num << endl;
    cout << A::num << endl << endl;

    cout << &B::num << endl;
    cout << &A::num << endl;
    cout << &b.num << endl;

    return 1;
}

2011-05-16 22:47
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
呵呵,我刚刚看到这章:
c++primer 3rd p741中这么说的:
Query 基类定义了一个静态数据成员_text_file  
static vector<string> *_text_file;
     派生类 NameQuery会创建第二个_text_file实例(对于 NameQuery类而言是惟一的)吗?  
不,所有派生类对象都引用这个相同的、单一的、共享的静态成员,不论从Query派生了多少类,_text_file只存在一个实例 如果愿意的话 我们可以通过派生类对象用成员访问语法来访问它  
nameQueryObject._text_file; // ok
2011-05-16 22:53
xingbo2293
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2010-10-22
收藏
得分:0 
回复 4楼 laigaoat2005
就是说可以在派生类中共享,派生类可以使用这个父类的静态变量,但是,不能称为继承。
2011-05-17 10:26
xingbo2293
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2010-10-22
收藏
得分:0 
回复 3楼 诸葛修勤
经典啊,没有this指针的不能被继承...
2011-05-17 10:36
快速回复:C++中静态变量不能被继承,但是这个程序怎么看
数据加载中...
 
   



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

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