C ++でのfunc()と(* this).func()の違い

gtatr:

私はC ++で他の誰かのコードに取り組んでおり、特定の関数への奇妙な呼び出しを見つけましたfunc()次に例を示します。

if(condition)
    func();
else
    (*this).func();

違いは何であるfunc()とは(*this).func()

呼び出し例は何ですかfunc()とは(*this).func()異なるコードを実行しますか?

私の場合、func()マクロはありません。これは基本クラスの仮想関数であり、基本クラスと派生クラスの両方に実装があり、freeはありませんfunc()if基底クラスのメソッドに配置されています。

lisyarus:

実際には違いがありますが、非常に重要なコンテキストです。このコードを考えてみましょう:

void func ( )
{
    std::cout << "Free function" << std::endl;
}

template <typename Derived>
struct test : Derived
{
    void f ( )
    {
        func(); // 1
        this->func(); // 2
    }
};

struct derived
{
    void func ( )
    {
        std::cout << "Method" << std::endl;
    }
};

test<derived> t;

ここで、を呼び出すt.f()と、最初の行でtest::ffree関数funcが呼び出され、2行目でが呼び出されますderived::func

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C ++でのfunc()と(* this).func()の違い

分類Dev

C ++でのfunc(int&x)とfunc(int&x)の違い

分類Dev

(func)()と(func).call(window)の違い

分類Dev

クラスのfunc()=> {}とfunc =()=> {}の違いは何ですか?

分類Dev

TkInterの「func」と「func()」の違いは何ですか?

分類Dev

「(type func())」と「type func()」の違いは何ですか

分類Dev

`func <T:Type>`と `func <T>(..)の違いここでT:Type`?

分類Dev

C#での非同期Func <Task <T >>の3つの呼び出しの違いは何ですか?

分類Dev

func foo(arr [] int)intとfunc foo(arr [num] int)intの違いは何ですか

分類Dev

`decltype(&ordenary_func)`とdecltype`(ordenary_func) `の違い

分類Dev

obj.func(arg)とobj.func.bind(obj、arg)の違い

分類Dev

`my_func <T:MyTrait>`と `my_func <T>の違い(T:MyTrait`)

分類Dev

タイプ「string」と「func()string」の違いは何ですか?

分類Dev

funcがCの&funcと同じように見えるのはなぜですか?

分類Dev

call_user_funcとcall_user_func_array()の戻り値の違いがなぜ

分類Dev

SwiftのExtensionfunc、Extension static func、Extension class funcの違いは何ですか?

分類Dev

this-> func()とfunc()の構文に微妙な違いはありますか?

分類Dev

(ptr + i)-> Func()と&ptr [i] .Func()の間に違いはありますか

分類Dev

struct staticfuncとclassstatic funcのswiftの違いは?

分類Dev

Funcを使用したクエリの実行とExpressionFuncの違い

分類Dev

Func<T,TResult> の使用 c#

分類Dev

`go print(v)`と `go func(){print(v)}()`の違いは?

分類Dev

__PRETTY_FUNCTION __、__ FUNCTION __、__ func__の違いは何ですか?

分類Dev

なぜ `func()[] int`を` func()[] interface {} `として渡せないのですか?

分類Dev

標準のC ++ 11は、std :: async(std :: launch :: async、func)が別のスレッドでfuncを起動することを保証しますか?

分類Dev

Action <>および/またはFunc <>のc#のtypedefと同等

分類Dev

違いは何ですかrxjavaでFunc0とAction1を使用するのに適しています

分類Dev

C ++とCの違い&*

分類Dev

C ++ 14で「auto」を差し引く前の「auto func(int)」の使用

Related 関連記事

  1. 1

    C ++でのfunc()と(* this).func()の違い

  2. 2

    C ++でのfunc(int&x)とfunc(int&x)の違い

  3. 3

    (func)()と(func).call(window)の違い

  4. 4

    クラスのfunc()=> {}とfunc =()=> {}の違いは何ですか?

  5. 5

    TkInterの「func」と「func()」の違いは何ですか?

  6. 6

    「(type func())」と「type func()」の違いは何ですか

  7. 7

    `func <T:Type>`と `func <T>(..)の違いここでT:Type`?

  8. 8

    C#での非同期Func <Task <T >>の3つの呼び出しの違いは何ですか?

  9. 9

    func foo(arr [] int)intとfunc foo(arr [num] int)intの違いは何ですか

  10. 10

    `decltype(&ordenary_func)`とdecltype`(ordenary_func) `の違い

  11. 11

    obj.func(arg)とobj.func.bind(obj、arg)の違い

  12. 12

    `my_func <T:MyTrait>`と `my_func <T>の違い(T:MyTrait`)

  13. 13

    タイプ「string」と「func()string」の違いは何ですか?

  14. 14

    funcがCの&funcと同じように見えるのはなぜですか?

  15. 15

    call_user_funcとcall_user_func_array()の戻り値の違いがなぜ

  16. 16

    SwiftのExtensionfunc、Extension static func、Extension class funcの違いは何ですか?

  17. 17

    this-> func()とfunc()の構文に微妙な違いはありますか?

  18. 18

    (ptr + i)-> Func()と&ptr [i] .Func()の間に違いはありますか

  19. 19

    struct staticfuncとclassstatic funcのswiftの違いは?

  20. 20

    Funcを使用したクエリの実行とExpressionFuncの違い

  21. 21

    Func<T,TResult> の使用 c#

  22. 22

    `go print(v)`と `go func(){print(v)}()`の違いは?

  23. 23

    __PRETTY_FUNCTION __、__ FUNCTION __、__ func__の違いは何ですか?

  24. 24

    なぜ `func()[] int`を` func()[] interface {} `として渡せないのですか?

  25. 25

    標準のC ++ 11は、std :: async(std :: launch :: async、func)が別のスレッドでfuncを起動することを保証しますか?

  26. 26

    Action <>および/またはFunc <>のc#のtypedefと同等

  27. 27

    違いは何ですかrxjavaでFunc0とAction1を使用するのに適しています

  28. 28

    C ++とCの違い&*

  29. 29

    C ++ 14で「auto」を差し引く前の「auto func(int)」の使用

ホットタグ

アーカイブ