简单的封装问题 及 效率 问题
封装问题:
例:
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已经成为瓶颈再考虑自定义结构,通常情况下应该不会发生。程序运行需要效率,编写程序也需要效率。
[解决办法]
重新造轮子总是没有必要的,
在可以的情况下,
优先考虑已有的库/类/结构 ...