C++ 类变量,其作用域限制为函数
成员函数将被重复调用。C++ 类变量,其作用域限制为函数,c++,C++,成员函数将被重复调用。 我认为每次为局部变量分配内存都很耗时。 解决方案是在类声明中声明这些变量。 但我不希望它们对同一类的其他函数可见。 有办法做到这一点吗? 尝试使用名称空间,但无效 A类 { int n;//只有函数“One”应该看到“n” 公众: A(void);//默认构造函数 int-One(void);//成员函数 int-Two(void);//成员函数 }; A::A(void)//默认构造函数 { n=7; } int A::One(void)//函数“One” { 返回n;
我认为每次为局部变量分配内存都很耗时。
解决方案是在类声明中声明这些变量。
但我不希望它们对同一类的其他函数可见。
有办法做到这一点吗?
尝试使用名称空间,但无效
A类
{
int n;//只有函数“One”应该看到“n”
公众:
A(void);//默认构造函数
int-One(void);//成员函数
int-Two(void);//成员函数
};
A::A(void)//默认构造函数
{
n=7;
}
int A::One(void)//函数“One”
{
返回n;//声明“n”不会浪费时间
}
int A::Two(void)//函数'Two'
{
int n=7;//必须,没有其他可用的“n”
返回n;
}
分配局部变量并不耗时,它们是在大数据块中分配的调用堆栈的一部分。你打算做的与良好实践相反。好的做法是在尽可能小的范围内声明变量。
此外,不能对同一类中的成员函数隐藏字段 你看到了一个错误的问题
- 如果您总是希望给定的方法返回给定的值,无论实例和历史值是什么,当然不要为此使用属性
- 如果属性值取决于实例,请使用(非静态)属性
- 如果值不依赖于实例,但在执行过程中可以更改,请使用类实例(例如静态)
- 如果该值不依赖于实例,则可以使用该方法中定义的静态变量李>
- 否则,您可以在方法中使用静态定义的映射,其中键是实例,值是期望值,但这会使操作复杂化,因为您至少需要考虑实例的删除。我鼓励你不要做那种加沙工厂