成员函数将被重复调用。
我想每次将内存分配给局部变量都是很耗时的。
一种解决方案是在类声明中声明这些变量。
但是我不希望它们对同一类的其他函数可见。
有办法吗?
试图使用名称空间,但是没有用。
class A
{
int n; // only function 'One' should see 'n'
public:
A(void); // default constructor
int One(void); // member function
int Two(void); // member function
};
A::A(void) // default constructor
{
n = 7;
}
int A::One(void) // function 'One'
{
return n; // no time lost declaring 'n'
}
int A::Two(void) // function 'Two'
{
int n = 7; // obligatory, no other 'n' available
return n;
}
答案 0 :(得分:2)
您看到错误的问题/问题
但是我不希望它们对相同类的其他函数可见。
仅使用可见性是不可能的,该类的所有方法都可以(幸运地)访问该类的属性,这不是问题,因为该类知道它的作用。当然,该属性必须至少受保护。
无论如何
答案 1 :(得分:1)
分配局部变量不是很费时,它们是在大块中分配的调用堆栈的一部分。您打算做的事情与良好做法相反。优良作法是在尽可能小的范围内声明变量。 同样,您不能在同一类的成员函数中隐藏字段。