C++ Class Templates

Sort by

recency

|

245 Discussions

|

  • + 0 comments

    you are required to use class templates to create a class that can work with different data types. The task demonstrates how templates help achieve generic programming in C++. Khelo24bet Register

  • + 0 comments

    Answer

    template<class T>
    class AddElements {
    public :
        AddElements(T element1) {
            m_element1 = element1;
        }
        T add(T element2) {
            m_element2 = m_element1 + element2;
            return m_element2;
        }
        T concatenate(T element2) {
            m_element2 = m_element1 + element2;
            return m_element2;
        }
        T m_element1;
        T m_element2;
    };
    
  • + 0 comments

    include

    include

    using namespace std; template class AddElements { T element; public: AddElements(T arg) : element(arg) {} T add(T arg) { return element + arg; } }; template <> class AddElements { string element; public: AddElements(const string &arg) : element(arg) {} string concatenate(const string &arg) { return element + arg; } };

    int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n;

    string type;
    for (int i = 0; i < n; ++i) {
        cin >> type;
    
        if (type == "int") {
            int a, b;
            cin >> a >> b;
            AddElements<int> myint(a);
            cout << myint.add(b) << '\n';
        } 
        else if (type == "float") {
            double a, b;
            cin >> a >> b;
            AddElements<double> myfloat(a);
            cout << myfloat.add(b) << '\n';
        } 
        else if (type == "string") {
            string a, b;
            cin >> a >> b;
            AddElements<string> mystring(a);
            cout << mystring.concatenate(b) << '\n';
        }
    }
    
    return 0;
    

    }

  • + 0 comments

    /Write the class AddElements here/ template class AddElements { T element; public: AddElements(T arg) : element(arg) {} T add(const T& other) { return element + other; } };

    // specialization for string: use concatenate() template <> class AddElements { string element; public: AddElements(string arg) : element(std::move(arg)) {} string concatenate(const string& other) { return element + other; } };

  • + 0 comments

    C++ class templates are such a powerful feature! 🌟 They make code reusable and type-safe, which is perfect for solving a variety of problems efficiently. Mahadev Book Login ID and Password