復習 - シンプルな電卓
CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 11/104。
チャレンジ
難しいこれまでに学んだすべての概念を組み合わせた完全な Calculator クラスを構築してください:
- ヘッダーファイル/ソースファイル:宣言と実装を分離する
- namespace:クラスを
CalcAppの内部に配置する - private属性:
name(string)、memory(int)、operationCount(int) - constructors:引数付き(name)とデフォルト("Standard")
- thisポインター:すべてのmemberへのaccessに
this->を使用する - Methods:
add、subtract、multiply、divide(それぞれresultをmemoryに格納し、operationCountをincrementsする) - Getters:
getName()、getMemory()、getOperationCount()
ゼロで割る場合、divideは0を返すshould。
自分で試してみよう
#include <iostream>
#include "Calculator.h"
int main() {
std::string name;
int a, b;
std::getline(std::cin, name);
std::cin >> a >> b;
CalcApp::Calculator calc(name);
std::cout << "Calculator: " << calc.getName() << std::endl;
std::cout << "Memory: " << calc.getMemory() << std::endl;
std::cout << "Add: " << calc.add(a, b) << std::endl;
std::cout << "Subtract: " << calc.subtract(a, b) << std::endl;
std::cout << "Multiply: " << calc.multiply(a, b) << std::endl;
std::cout << "Divide: " << calc.divide(a, b) << std::endl;
std::cout << "Divide by zero: " << calc.divide(a, 0) << std::endl;
std::cout << "Memory: " << calc.getMemory() << std::endl;
std::cout << "Operations: " << calc.getOperationCount() << std::endl;
return 0;
}オブジェクト指向プログラミングのすべてのレッスン
3コンストラクタとデストラクタ
デフォルトコンストラクタパラメータ付きコンストラクタコピーコンストラクタムーブコンストラクタコンストラクタ初期化リスト委譲コンストラクタデストラクタ徹底解説Rule of Three / Five / Zero復習 - Stringクラス6演算子オーバーロード
演算子オーバーロード入門算術演算子のオーバーロード比較演算子のオーバーロードストリーム演算子代入演算子のオーバーロード[] と () の演算子オーバーロード型変換演算子復習 - Matrixクラス自分で練習してみよう: C++オンラインコンパイラ