在python中,我们可以使用self关键字在类的成员函数中声明类变量,该类函数随后可以由类的其他成员函数使用。 如何在C ++中做这样的事情。
Python代码:
class abc():
{
def __init__(self):
self.help='Mike' #self.help is the class variable and can be used in other methods
def helpf():
morehelp=self.help+' Bike'
}
C ++代码:
class abc
{
public:
abc();
public:
void helpf(void);
};
abc::abc()
{
string help="Mike";
}
void abc::helpf()
{
string morehelp=this->helpf+" Bike";// this keyword sounded like the one but...
}
答案 0 :(得分:3)
在C ++中无法做到这一点。 你应该在课堂上声明成员,而不是在函数中。
答案 1 :(得分:1)
您不能在C ++中的函数内声明类成员。你必须在函数之外声明它们,比如JAVA
class abc
{
public:
int publicInt; // This is a public class variable, and can be accesed from outside the class
int abc();
private:
float privateFloat; // This is private class variable, and can be accesed only from inside the class and from friend functions
void helpf(void);
};
答案 2 :(得分:0)
这是不可能的。在成员函数内声明变量是该成员函数的本地变量。如果要在成员函数中使用变量,则必须声明类变量。
答案 3 :(得分:0)
这适用于Python,因为Python允许您从任何地方向对象添加属性,只需分配给它即可。它附加到该对象,而不是对象的类。为了与Python的动态语言理念保持一致,特别是缺乏变量声明,所有这一切 - 包括关于哪些属性存在或不存在的决定 - 在运行时发生。
C ++显然没有一个具有属性的特定对象的概念 - 所有成员变量与该类相关联,即使它们在每个实例上采用独立的值。 所有可能的成员变量集以及它们所拥有的类型是在类范围内共享的,并在编译时设置为一堆。因此,你所要求的基本上在C ++中没有意义。