首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的封装有关问题 及 效率 有关问题

2012-03-29 
简单的封装问题 及 效率 问题封装问题:例:classA{public:display()classiterator{intapublic:.....}}

简单的封装问题 及 效率 问题
封装问题:
例:
      class   A
      {
          public:
                        display();
                        class   iterator
                        {
                                int   a;
                                public:
                                          .....
                        };    
      };
如果display()要访问私有变量a,可以解决的办法是在class   iterator   中加入
  friend     class   A;
请问还有别的方法吗?
**********************************************************************
效率问题:

如果在一个程序中,自己定义一个结构
如:   struct   a{
          int     array[SIZE];
          int   length;
        }
      若在程序中只用到先进后出,和stack一样,但不需要stack里面的方法,只是SIZE有个大小,当数量过大时,要重新给array的大小....
请问用哪个更好?stack,还是自己定义的结构?

谢谢!


[解决办法]
只要std::stack能达到你的要求,就应该优先使用
它的方法定义得再多,只要你不用到都等于0

[解决办法]
1.对于类的私有成员访问要么使用类的成员函数要么友元函数,在其他作用域中是无法访问的,当然是指编译器力所能及的检查范围内。若要故意欺骗编译器访问私有成员,那就是另当别论了,我想你不会是想这样吧。这样用友元类是标准用法,TC++PL里面就这样用。
2.对于效率问题,我想引用Bruce Eckel的一句话“好的程序员会在查找瓶颈方面,而不是在猜测方面投入更多工作”。若标准stack已经成为瓶颈再考虑自定义结构,通常情况下应该不会发生。程序运行需要效率,编写程序也需要效率。
[解决办法]
重新造轮子总是没有必要的,
在可以的情况下,
优先考虑已有的库/类/结构 ...

热点排行