在C ++中的类方法中声明类变量

时间:2013-06-04 10:30:19

标签: c++ python class oop function

在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...
 }

4 个答案:

答案 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 ++中没有意义。