C++ Online Compiler
Example: Series Sum Calculator with Constructor Overloading in C++
C
C++
C#
Java
Python
PHP
main.cpp
STDIN
Run
// Series Sum Calculator with Constructor Overloading #include <iostream> class SeriesSumCalculator { private: int start_val; int end_val; int step_val; long long total_sum; // Private helper method to perform the actual sum calculation void performCalculation() { total_sum = 0; if (start_val > end_val) { // Handle cases where start > end gracefully return; } if (step_val <= 0) { // Safety check, though constructors ensure this step_val = 1; } for (int i = start_val; i <= end_val; i += step_val) { total_sum += i; } } public: // Constructor 1: For sum from 1 to 'limit' (default step 1) SeriesSumCalculator(int limit) : start_val(1), end_val(limit), step_val(1) { if (limit < 1) { // Handle invalid limits std::cout << "Warning: Limit should be positive. Setting limit to 1." << std::endl; end_val = 1; } performCalculation(); } // Constructor 2: For sum from 'start' to 'end' (default step 1) SeriesSumCalculator(int start, int end) : start_val(start), end_val(end), step_val(1) { performCalculation(); } // Constructor 3: For sum from 'start' to 'end' with 'step' SeriesSumCalculator(int start, int end, int step) : start_val(start), end_val(end), step_val(step) { if (step <= 0) { std::cout << "Warning: Step value must be positive. Setting step to 1." << std::endl; this->step_val = 1; } performCalculation(); } // Method to get the calculated sum long long getSum() const { return total_sum; } // Method to display series parameters void displaySeriesParams() const { std::cout << "Series: Start=" << start_val << ", End=" << end_val << ", Step=" << step_val << ", Sum=" << total_sum << std::endl; } }; int main() { // Step 1: Create an object using Constructor 1 (sum from 1 to 10) SeriesSumCalculator s1(10); std::cout << "Series 1 (1 to 10): "; s1.displaySeriesParams(); // Step 2: Create an object using Constructor 2 (sum from 5 to 15, step 1) SeriesSumCalculator s2(5, 15); std::cout << "Series 2 (5 to 15, step 1): "; s2.displaySeriesParams(); // Step 3: Create an object using Constructor 3 (sum from 2 to 20, step 3) SeriesSumCalculator s3(2, 20, 3); std::cout << "Series 3 (2 to 20, step 3): "; s3.displaySeriesParams(); // Step 4: Demonstrate error handling (invalid limit for Constructor 1) SeriesSumCalculator s4(-5); std::cout << "Series 4 (invalid limit): "; s4.displaySeriesParams(); // Step 5: Demonstrate error handling (invalid step for Constructor 3) SeriesSumCalculator s5(1, 10, -2); std::cout << "Series 5 (invalid step): "; s5.displaySeriesParams(); return 0; }
Output
Clear
ADVERTISEMENTS