游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2731|回复: 3

如何为private提供接口

[复制链接]

13

主题

27

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2006-8-24 21:47:00 | 显示全部楼层 |阅读模式
我想在类中加入私有成员函数,但想在其他类中传值(不知道这个说法对不对?呵呵。)给这个私有的。我的代码是这样的,还请各位高手给点建议,谢谢。
class cursor
{
public:
        cursor(void);
        ~cursor(void);
        void updata(float time);
        void drawmouse(GLuint &texture1);
    void setx(float x)
        {
                mousex=x;
        }
    float getx()
        {
                return mousex;
        }        /*
        void sety(float y)
        {
                mousey=y;
        }
        float gety()
        {
                return mousey;
        }*/
private:
        float mousex;
        float mousey;
};
#endif

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-8-25 11:18:00 | 显示全部楼层

Re:如何为private提供接口

首先,你的代码是C++的,发错地方了吧!
其次,你的代码基本表达了你的想法,只是将两个get函数,就是getx和gety的最后加上const就好了,就是把它们变成只读的,这样能给编译器更多的参考信息来更好的优化你的代码。
另外,如果是C#的话,就用属性,用属性的话编译后也回被编译器加入get和set函数的!

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2006-8-27 01:55:00 | 显示全部楼层

Re:如何为private提供接口

很明显你的设计有问题
既然是private,对其他类来说就是透明的
如果外部类可以直接改变某个量的值,或调用某个方法
你觉得他还能算是private吗??

1

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2006-8-28 10:03:00 | 显示全部楼层

Re:如何为private提供接口

c++应该有个友类吧?如果有,那你就可以能过友类开访问了。如果是C#的话,那你的设计就有问题了,只能将private改为protected,让派生类来访问,或者改为public,让所有的类都可以访问。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 04:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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