cost 270 ms
修改派生類中的函數並通過派生類對象本身訪問它是運行時多態性的一個例子

[英]Is modifying a function in derived class and accessing it by derived class object itself an example of runtime polymorphism

我正在網上閱讀有關函數覆蓋和運行時多態性的信息。 在閱讀時,我發現了一個在programiz上覆蓋函數的示例,其中給出了以下示例: 輸出 在Derived類中,我們修改了Base類的print()函數,並由派生類的對象derived1訪問。 一個問題一直縈繞在我的腦海中——這也是運行時多態性的一個例 ...

class 方法中的多態性

[英]Polymorphism within a class method

考慮一個結構point 和一個 class object 我想要幾個子類,例如line 、 plane和shape ,具體取決於維度數。 但是,我想做的似乎沒有辦法在有效的 C++ 中實現它。 在addPoint()中,我想自動將this指針轉換為子類,根據需要進行向上轉換或向下轉換。 我知道那是無 ...

C 和 C++ 之間運行時多態性的性能差異

[英]Performance differences in run-time polymorphism between C and C++

我知道基准測試是一個非常微妙的主題,簡單的、沒有經過深思熟慮的基准測試對於性能比較幾乎沒有意義,但我現在所擁有的實際上是一個非常小的和做作的例子,我認為應該很容易解釋。 所以,即使這個問題看起來沒有幫助,它至少會幫助我理解基准測試。 所以,這里我是 go。 我試圖在 C 中嘗試簡單的 API 設計, ...

C++中使用數據成員的運行時多態性

[英]Runtime polymorphism in C++ using data members

我從這里學習 OOP 。 它說在 C++ 中使用數據成員可以實現運行時多態性。 現在,考慮這段代碼: - 在上述兩種情況下,都會打印顏色“黑色”。 那么,這個運行時多態性的例子是怎樣的呢? ...

使用組合時,C++ 中的后期綁定可以在不需要堆內存的情況下完成嗎?

[英]Can late-binding in C++ be done without the need for heap-memory when using composition?

后期綁定或運行時多態性需要兩件事:基指針和虛方法。 似乎傾向於使用堆內存來創建多態對象而不是堆棧分配的對象,尤其是在使用“多態對象”作為組件對象時。 這是一個要求嗎:C++ 語言作為一個整體的性質是否強制將堆內存用於“多態組件對象”? 是否有任何設計模式可以克服將堆內存用於“多態組件對象”的需求 ...

指向派生類的基類指針不能訪問基類的公共數據成員嗎?

[英]Can't a base class pointer which is pointing to derived class access the public data members of base class?

我創建了一個基類 Polygon 並將兩個數據成員 - 高度和寬度聲明為公共的。 也是一個虛函數——calculateArea()。 然后兩個派生類矩形和三角形有一個函數calculateArea()。 我想重寫基類函數,每個派生類都使用自己的calculateArea()。 輸出沒有按預期出現,它 ...

C++:對於這種(多分派)運行時多態性,是否有更優雅的解決方案?

[英]C++: Is there a more elegant solution to this (multiple dispatch) runtime polymorphism?

主要問題很簡單,真的。 給定一個基礎(更抽象的) class 和多個需要相互交互的派生的,你如何 go 去做呢? 舉一個更具體的例子,這里是一個 2d 視頻游戲的 hitboxes 實現:#include <stdio.h> #include <vector> #incl ...

在 C++ 中實現虛擬函數和運行時多態時的編譯時錯誤

[英]Compile time errors while implement Virtual Functions and Run-time polymorphism in C++

我創建了以下程序來在 C++ 中實現運行時多態性 它使用構造函數、“新”內存分配器運算符和虛擬函數來達到目的 問題是: 考慮一家同時出售書籍和錄像帶的書店。 創建一個稱為媒體的類,用於存儲出版物的標題和價格。 但最終會出現以下錯誤 virtual_function.cpp:47:6: er ...

dynamic_cast<> 的開銷是多少

[英]What is the overhead of dynamic_cast<>

所以我已經在 C++ 編程了一段時間,有人告訴我,使用動態轉換將抽象 class 指針的指針轉換為不同的具體 class 指針是不好的做法。 其中 Shape 是一個抽象的 class 和 Triangle 繼承自它。 當您的繼承類中的一個與抽象 class 包含的通用函數相比,它的要求稍有不同時, ...

虛擬 function 調用非虛擬 function 反之亦然

[英]Virtual function calling a non-virtual function and vice versa

我有一個class A作為 class 的基礎class B 。 我在我的虛擬function, xyz()中調用了非虛擬function, abc() ,如下所述。 由於運行時多態性, B:xyz被調用——我理解這一點。 但是,我不明白,為什么后面跟着B:abc而不是A:abc ,因為abc是非虛 ...

在 Rust 中使用枚舉實現動態多態

[英]Using enums for dynamic polymorphism in Rust

當一個人已經知道一些需要動態多態性的代碼中涉及的所有有限數量的類型時,與使用Box相比,使用enum可以獲得更好的性能,因為后者使用動態內存分配,並且您需要使用具有虛函數的特征對象也打電話。 也就是說,與 C++ 中使用std::variant和std::visit的等效代碼相比,這種情況下的 R ...

為什么基 class 指針指向基 class 中的純虛方法,而不是派生 class 中的覆蓋方法?

[英]Why does the base class pointer point to the pure virtual method in the base class instead of the overidden method in the derived class?

如果Foo的構造函數引用了B的 object ,那么這個程序將按照我期望的方式執行,即a_ptr-&gt;foo()調用B::foo() 。 但是,如果將構造函數更改為按值接受參數,則a_ptr-&gt;foo()將解析為A::foo() ,並導致pure virtual method calle ...

C++模板編程設計題-根據輸入文件返回不同類型

[英]C++ template programming design question - return different type according to input file

一個多媒體文件可能有不同日期類型的數據,例如 uint8_t、int16_t、float 等。下面三個例子展示了文件內容,第一個字節表示數據類型: FileReader class 讀取文件並返回不同類型的 DataStream。 我使用 DataStreamBase 以便客戶端持有一個指針。 客 ...

動態方法分派和運行時多態性錯誤

[英]Dynamic method dispatch and runtime polymorphism error

我正在嘗試了解動態方法調度。 為什么會顯示錯誤? 為什么我不能創建類型 B 或 C 的變量 r 並調用 callme() 方法? 編輯:為了澄清一些事情,我不想使用相同的變量名,我想說的是,而不是 A r; 我正在嘗試使用 B r 並保持代碼的 rest 相同。 ...

基於類型映射的運行時類型選擇

[英]Runtime type selection based on map of types

背景 我正在編寫一個使用 USB 設備的應用程序。 這包括基於 USB 供應商 ID 和產品 ID 的我的應用程序可以使用的 USB 設備的設備發現。 然而,這些設備有時有多個可能工作的驅動程序,即應用程序實現,這取決於平台和月相(客戶遺留的東西)。 所以我想使用std::shared_ptr和一系 ...

闡述:方法重載是靜態/編譯時綁定,但不是多態。 將靜態綁定與多態相關聯是否正確?

[英]Elaboration: Method overloading is a static/compile-time binding but not polymorphism. Is it correct to correlate static binding with polymorphism?

在我提出問題之前,讓我解釋一下我的理解和看法。 除非進行覆蓋,否則僅通過Override才能實現多態。 而且,它只能在運行時看到,人們可能將其命名為“運行時多態性”。 ( 我不反對將多態稱為運行時多態 ) 我反對將方法重載稱為編譯時多態或多態 。 我同意方法重載是靜 ...

虛擬表是C ++標准的一部分嗎?

[英]Are virtual tables part of the C++ standard?

我正在閱讀有關C ++中后期綁定多態性的實現,並且我了解了虛擬表和虛擬指針。 然后我搜索了C ++標准( ISO / IEC 14882:2011 ),以獲得有關如何實現此行為的更多信息。 不幸的是,除了§10.3中虛函數的定義之外,我發現這個大規模標准沒有任何相關性 ,所以我認為_ ...


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