簡體   English   中英

函數可以繼承參數嗎?

[英]Can a function inherit arguments?

在KinFu重制的源代碼中,我發現以下結構:

kfusion::OpenNISource::OpenNISource() : depth_focal_length_VGA (0.f), baseline (0.f),
shadow_value (0), no_sample_value (0), pixelSize (0.0), max_depth (0) {}

:之后的參數在類kfusion :: OpenNISource中聲明。 函數OpenNISource()也在此類中聲明。 當我剛接觸C ++時,我發現函數繼承並聲明了變量...(?)

那么下面的代碼是否會將變量(foo,bar)和值(0、1.0f)添加到函數中?

class A 
{
  public:
    fn ();
    fn (int qux);

    int foo;
    float bar;
};


A::fn() : foo(0), bar(1.0f) {} 

如果是的話,這些變量也會被添加到fn(int qux)嗎?

因為此函數與類具有相同的名稱,所以它是類的構造函數 ,在實例化該類時會自動調用它。

冒號后面的變量列表是初始化列表,用於將初始值分配給類的成員變量。

您只能使用構造函數執行此操作,而不僅僅是使用任何函數,因此您的代碼將無法工作。 為此,您必須調用函數“ A”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM