[Home]
[Edit this page]
[Recent Changes]
[Special Pages]
[Help]
CppOverloadDivideEquals
More operators overloaded:
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
CppOverloadDivideEquals
(C++) Overloading the divide-equals operator
Here an example with only the divide-equals operator overloaded. After it, I give the same example with more operators overloaded.class TimePoint { public: TimePoint() { reset(); } double mean; double stdDev; void reset() { mean = 0; stdDev = 0; } void operator/=(const double& value) { mean/=value; stdDev/=value; } }; TimePoint getAverage(const std::vector<TimePoint>& timePoints) { TimePoint result; const int nTimePoints = timePoints.size(); for (int i=0; i<nTimePoints; ++i) { result.mean+=timePoints[i].mean; result.stdDev+=timePoints[i].stdDev; } result/=static_cast<double>(nTimePoints); return result; } int main() { const int nTimePoints = 10; std::vector<TimePoint> timePoints(nTimePoints); for (int i=0; i<nTimePoints; ++i) { timePoints[i].mean = static_cast<double>(i); timePoints[i].stdDev = 1.0; } const TimePoint averageTimePoint = getAverage(timePoints); std::cout << "averageTimePoint.mean: " << averageTimePoint.mean << std::endl;; std::cout << "averageTimePoint.stdDev: " << averageTimePoint.stdDev << std::endl; return 0; }
- include <iostream>
- include <vector>
More operators overloaded:
class TimePoint { public: TimePoint() { reset(); } double mean; double stdDev; void reset() { mean = 0; stdDev = 0; } void operator/=(const double& value) { mean/=value; stdDev/=value; } void operator+=(const TimePoint& timePoint) { mean+=timePoint.mean; stdDev+=timePoint.stdDev; } friend std::ostream& operator<<( std::ostream& os, const TimePoint& timePoint) { os << "timePoint.mean: " << timePoint.mean << '\t' << "timePoint.stdDev: " << timePoint.stdDev; return os; } }; TimePoint getAverage(const std::vector<TimePoint>& timePoints) { TimePoint result; const int nTimePoints = timePoints.size(); for (int i=0; i<nTimePoints; ++i) { result+=timePoints[i]; } result/=static_cast<double>(nTimePoints); return result; } int main() { const int nTimePoints = 10; std::vector<TimePoint> timePoints(nTimePoints); for (int i=0; i<nTimePoints; ++i) { timePoints[i].mean = static_cast<double>(i); timePoints[i].stdDev = 1.0; } const TimePoint averageTimePoint = getAverage(timePoints); std::cout << averageTimePoint << std::endl; return 0; }
- include <iostream>
- include <vector>
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
