如何从类中访问函数?

时间:2016-11-10 13:04:11

标签: c++ class

如何从该类之外的类中访问函数?

示例:

int main(int argc, char *argv[])
{
    class ImageLoading
    {

    void Loading()
    {
        cout << 5 <<endl;
    }

    };

Loading();

return 0;
}

4 个答案:

答案 0 :(得分:3)

类中定义的标准函数是实例类。它只能用于实例,即创建的对象。 为此,您需要创建一个ImageLoading类实例:

ImageLoading instance;
instance.Loading();

也可以创建与类关联的函数,而不是它的实例。为此,您需要在函数定义

中添加关键字static
static void Loading()
{
    cout << 5 << endl;
}

然后要使用它,你需要告诉它是ImageLoading中定义的静态类。语法为ClassName::MethodName()所以:

ImageLoading::Loading();

答案 1 :(得分:2)

你只需要创建一个类的实例,然后用它调用它。

ImageLoading image;

image.Loading();

答案 2 :(得分:1)

在类之外访问类的功能需要以下两项中的一项:

  1. 班级的一个实例。
  2. static功能。
  3. 让我们快速谈谈课程。默认情况下,当您为函数或变量设置class默认访问修饰符时,private:意味着只有类本身可以调用它,还有一些其他类可以访问它,但这并不是真正相关的这次。在发布的问题中,函数Loading是私有的。这意味着它只能在类中调用。即使有班级的实例,也无法从main调用它。

    如果您想在没有对象实例的情况下调用该函数,则需要staticpublic

    使用您的代码的示例:

    class ImageLoading
    {
    public:
        static void Loading()
        {
            cout << 5 << endl;
        }
    
    };
    
    int main(int argc, char *argv[])
    {
    
        ImageLoading::Loading();
    
        return 0;
    }
    

    static函数的缺点是它不属于类的实例,所以如果你的类变量不是静态的,静态函数就不能修改它们而没有实例那个对象。

    这是一个很好的资源,其中包含c ++中Access Modifiers的一些示例: http://en.cppreference.com/w/cpp/language/access

答案 3 :(得分:0)

类在main方法之外定义:以下是执行此操作的正确方法:

  class ImageLoading
   {
     void Loading()
      {
       cout << 5 <<endl;
      }
   };

 int main(int argc, char *argv[])
 {
   ImageLoading Obj;
   Obj.Loading();
   return 0;
 }