タグ付けされた質問 「overloading」

オーバーロードおよびオーバーロードという用語は、以下を参照する場合があります。-コンストラクターおよびメソッドのオーバーロード、渡されたパラメーターのデータ型に基づいて同じ名前の異なる関数が呼び出される一種の多態性-演算子のオーバーロード、関数またはメソッドのオーバーロードの形式オーバーロードされるアクションは+または-などの演算子です

11
戻り値の型によるオーバーロード
私はこのトピックについてSOでいくつかの質問を読みましたが、それでも私には混乱しているようです。私はC ++を学び始めたばかりで、テンプレートや演算子のオーバーロードなどについてはまだ勉強していません。 今、過負荷にする簡単な方法があります class My { public: int get(int); char get(int); } テンプレートや奇妙な動作なし?または私はただ class My { public: int get_int(int); char get_char(int); } ?
81 c++  overloading 

4
テンプレートを使用した関数のオーバーロード
テンプレートを使用して関数を定義しようとしています。型名をintまたはanEnum(定義した特定の列挙型)にしたいのですが。私は以下を試しましたが失敗しました: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T &aVariable){} 私がやろうとしていることは、2つのオーバーロードされた関数を定義する代わりに、テンプレートを使用することです。プログラマがタイプを考慮する必要なしに、次のように関数を呼び出す方がいいです isFunction(aVariable) // and not isFunction<int> (aVariable) nor isFunction<anEnum> (aVariable) 基本的に、この関数をintおよびaNumタイプ用にテンプレート化します。私はこれを検索しましたが、答えが見つかりませんでした。何が欠けているのでしょうか?ありがとうございました、

6
C ++のオーバーロードされたコンストラクターによる不明な型の変数の初期化
主にpythonのバックグラウンドから来ているので、C ++で型を操作するのに多少苦労しました。 異なる型をパラメーターとして受け取るいくつかのオーバーロードされたコンストラクターの1つを介してクラス変数を初期化しようとしています。autoキーワードの使用は変数の自動宣言に使用できることを読みましたが、私の場合、コンストラクターが選択されるまで初期化されません。しかし、コンパイラーは初期化しないことに満足していませんvalue。 class Token { public: auto value; Token(int ivalue) { value = ivalue; } Token(float fvalue) { value = fvalue; } Token(std::string svalue) { value = svalue; } void printValue() { std::cout << "The token value is: " << value << std::endl; } }; Pythonでは、次のようになります。 class Token(): def …

3
ラムダ関数をオーバーロードする
単純なローカルラムダ関数をオーバーロードする方法は? 元の問題のSSE: #include <iostream> #include <map> void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto translate = [](char c) { std::map<char, int> table{ {'a', 0}, {'b', 1}, {'c', 2}, {'d', 3}, {'e', 4}, {'f', 5}, …

2
Constオーバーロードがgccで予期せず呼び出されました。コンパイラのバグまたは互換性の修正?
charおよびconst char配列のテンプレートのオーバーロードに依存する、はるかに大きなアプリケーションがあります。gcc 7.5、clang、およびビジュアルスタジオでは、以下のコードはすべてのケースで「NON-CONST」を出力します。ただし、gcc 8.1以降の場合、出力は次のようになります。 #include <iostream> class MyClass { public: template <size_t N> MyClass(const char (&value)[N]) { std::cout << "CONST " << value << '\n'; } template <size_t N> MyClass(char (&value)[N]) { std::cout << "NON-CONST " << value << '\n'; } }; MyClass test_1() { char buf[30] = "test_1"; return …

2
呼び出されるメソッドのオーバーロード解決
私が持っていると仮定しましょうComponentBaseの子で、クラス、ObjectContextDecoratorおよびの孫をObjectContext。 public class ComponentBase extends ObjectContextDecorator { } public class ObjectContextDecorator extends ObjectContext { public void set(String objectTypePath, String characteristicName, Object value) { //... } } public class ObjectContext { public void set(String characteristicName, Object value, boolean forced) { //... } } set上の方法ObjectContextDecoratorとはObjectContext非常にsimillarです。次のサンプルコードを考えてみます。 ComponentBase base = new ComponentBase(); base.set(""OTM4E_EFFLEVEL"", ""IE1 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.