void *function() 在 C++ 中使用类的对象在 main 中调用 [duplicate]

void *function() to call in main using the object of class in c++ [duplicate]

提问人:Yash Gupta 提问时间:5/3/2022 最后编辑:Yash Gupta 更新时间:5/3/2022 访问量:529

问:

这个问题在这里已经有答案了:
去年关闭。

这篇文章是去年编辑并提交审查的,但未能重新打开该帖子:

原始关闭原因未解决

我想使用类的对象在 main 中调用 void *函数

class SERVER{
   public: 
   void *handle_client(void *arg){
   ...
   }
};

int main(){
   SERVER s1;
   pthread_create(&tid, NULL, &handle_client, (void*)cli); 
   //how to call handle_client using s1 object
}

调用函数在 pthread.h 中预定义,语法为:

int pthread_create(pthread_t *限制线程, const pthread_attr_t *限制 attr, 无效 *(*start_routine)(无效 *), void *restrict arg);

C++ 对象 指针 按引用传递

评论

0赞 Swift - Friday Pie 5/3/2022
使用一些逻辑..调用函数..您需要一个函数调用的运算符。要访问对象的成员,您需要什么?你不能“类比”地根据本能的猜测进行编程
0赞 Miles Budnek 5/3/2022
是什么让你感到困惑? 只是一个返回 . 就是你所需要的。functionvoid*void* some_ptr = s1.function()
0赞 Yash Gupta 5/3/2022
其实我是编码新手:在这个函数中,我想调用第三个参数handle_client其声明如下:使用名为 serve 的类的对象pthread_create(&tid, NULL, &handle_client, (void*)cli);void *handle_client(void *arg)
0赞 JaMiT 5/3/2022
@YashGupta 您问题中的文字没有提到使用 .你的代码是用来说明你的问题,而不是问它。像这样的答案适合您的问题文本。如果这还不够,您应该在文本中更详细。pthread_creates1.function();
0赞 Yash Gupta 5/3/2022
抱歉,我无法添加足够的细节,我已经更新了问题,请您看一下吗?@JaMiT

答:

0赞 Edmunoz1030 5/3/2022 #1

为了能够在 main 中调用它,您需要创建一个 SERVER 类的实例来调用它。例:

class SERVER
{
   public: 
        void *function()
        {
           return 0; //do whatever you would like in here
        }


};

int main()
{
   SERVER s1;

   s1.function(); 
}

评论

0赞 Yash Gupta 5/3/2022
其实我是编码新手:在这个函数中,我想调用第三个参数handle_client其声明如下:使用名为 serve 的类的对象pthread_create(&tid, NULL, &handle_client, (void*)cli);void *handle_client(void *arg)