VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 652|回复: 2

static问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-7 23:00:01 | 显示全部楼层 |阅读模式
class point3d{
public:
      float x(){return _x;
private:
    static  float _x;
};

main()
{
    point3d rout;
    point3d *pt=&rout;
    cout<<rout.x()<<endl<<pt->x()<<endl;
}

上面程序中,总是报error LNK2001: unresolved external symbol "private: static float Point3d::_x" (?_x@Point3d@@0MA)错误,我把static 去掉,就可以运行了,请大虾指示!
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-3-30 02:15:01 | 显示全部楼层
STATIC成员变量是放在对象之外的,需要定义
class point3d{
public:
      float x(){return _x;
private:
    static  float _x;
};

float point3d::_x ;
main()
{
    point3d rout;
    point3d *pt=&rout;
    cout<<rout.x()<<endl<<pt->x()<<endl;
}
回复

使用道具 举报

0

主题

15

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-3-30 10:00:01 | 显示全部楼层
所有的static的数据都是放在static区的,它不单独属于任何一个对象

但只有它的声名所在的类能对它进行访问(private情况下),而且只能定义一次
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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