2016-11-10 142 views
0

如何从类中的某个类访问某个函数?如何从类中访问函数?

例子:

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

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

    }; 

Loading(); 

return 0; 
} 
+0

你需要类的一个对象来访问它,或使其静态和使用类名 – P0W

+0

@ P0W:您好,欢迎收看堆栈溢出!你已经找到了_comments部分,这是一个批评的领域,要求澄清,以及与人打架。如果你想回答这个问题(这意味着为问题的作者提供一个解决方案),适当的地方是_answer section_,你可以在下面找到它。然后你的答案可以像平常一样进行同行评审。谢谢你,并享受网站! –

+0

@LightnessRacesinOrbit我认为鼓励用户不要在过去的3年和11个月内不要农场无用的声誉。但要指出的是,我总是尊重200K +用户。 – P0W

回答

3

在一个类定义的标准函数是一个实例的类。它只能用于实例,即创建的对象。 要做到这一点,你需要创建一个ImageLoading类的实例:

ImageLoading instance; 
instance.Loading(); 

这也是可能的创建相关的类,而不是它的实例功能。对于这一点,你需要添加关键字static在函数定义

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

然后使用它,你需要告诉它在ImageLoading定义的静态类。语法是ClassName::MethodName()这样:

ImageLoading::Loading(); 
2

您只需创建类的实例,然后用它来调用它。

ImageLoading image; 

image.Loading(); 
0

类被定义main方法外:以下是做到这一点的适当方法:

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

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

访问一类的功能的类以外的要求1 2的事情是:

  1. 的类的一个实例。
  2. A static功能。

让我们来快速讲一堂课。默认情况下,当您创建一个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