外部" C&#34 ;?的功能是什么?

时间:2015-09-15 18:05:27

标签: c++ oop

它包含在cpp类源文件中, 它有以下代码,从我能够搜索到的,我还没有看到声明派生类的任何对象,这是为什么使用这个函数?

extern "C"
{
   derived_class * create_derv_class_resource(dt1 arg1, dt2 arg2)
   {
   return new derived_class(arg1,arg2);
   } 
}

2 个答案:

答案 0 :(得分:2)

我不知道如何解释"语法",它真的没什么特别的。

该函数的语义是它创建一个derived_class类型的对象,将给定的参数传递给构造函数。

调用此函数而不是直接调用new可能是:

  1. 从C代码调用它,您无法直接创建任何C ++对象。 extern "C"也表明了这一点。
  2. 有人想在需要函数指针的地方使用该函数。

答案 1 :(得分:0)

你问的问题并不清楚,但如果这段代码有效,很明显你在某处有一个名为derived_class的对象,如果它的构造函数有dt1和{{1}参数。

可以从dt2调用函数create_derv_class_resource(),但这似乎不太可能,因为C可能不知道它需要解析的C类型原型。