【C++】オブジェクト指向プログラミング入門 (プロセス指向プログラミング | iostream 依存関係の表示 | オブジェクト指向プログラミング)





1. プロセス指向プログラミング



円の半径が与えられた場合、円周と円の面積を求めます。

半径はrrですr、周長は2 π r 2 \pi r2 π r、面積はπ r 2 \pi r^2πr _2 ;


上記の問題をプロセス指向の方法で解決すると、プログラムを逐次的に実行することしかできず、複数の円の領域が必要な場合は、プロセスコードを繰り返し実行する必要があります。


コード例:


// 包含 C++ 头文件
#include "iostream"

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

int main() 
{
    
    
	// 定义圆半径 , 周长 , 面积 对应的变量
	double r = 0, p = 0, a = 0;

	// 提示输入圆半径
	cout << "输入圆半径 :" << endl;

	// 从命令行标准输入得到的数据 到 变量 r 指示的内存空间中
	cin >> r;
	cout << "接收到圆半径 :"<< r << endl;

	// 计算圆周长
	p = 3.14159 * 2 * r;

	// 计算圆面积
	a = 3.14159 * r * r;

	// 打印计算结果
	cout << "圆周长为 :" << p << " 圆面积为 : " << a << endl;

	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
}

実行結果:半径 10 を入力し、対応する周囲長と面積を計算します。

输入圆半径 :
10
接收到圆半径 :10
圆周长为 :62.8318 圆面积为 : 314.159
Press any key to continue . . .

ここに画像の説明を挿入

ここに画像の説明を挿入





2. iostream の依存関係を表示する



前の章のコードでは、cout と cin という 2 つの標準ストリームが使用されました。

  • データを cout 標準出力ストリームに出力します。実現するには cout << 出力コンテンツを使用します。
  • cin 標準入力ストリームからメモリにデータを読み取り、cin >> メモリ空間を使用して実現します。

<< は出力ストリームへの出力データ、>> はメモリへの入力データです。

覚え方は次のとおりです。標準フロー cin と cout は常に左側にあり、<< と >> はデータの方向です。


cin と cout は両方とも iostream で定義されており、Visual Studio 2019 のソリューション エクスプローラーのプロジェクトの下にある "外部依存関係" で iostream 標準ストリーム定義を表示できます。

ここに画像の説明を挿入
ダブルクリックして「外部依存関係」を展開すると、iostream の完全なコードを表示できます。

ここに画像の説明を挿入





3. オブジェクト指向プログラミング



円の半径が与えられた場合、円周と円の面積を求めます。

半径はrrですr、周長は2 π r 2 \pi r2 π r、面積はπ r 2 \pi r^2πr _2 ;


上記の問題を解決するには、オブジェクト指向のアプローチを使用します。

  • 総理、抽象化しますが、ここでは円をデータ型として定義しています。
  • 次に、円タイプで、メンバー プロパティの半径、円周、および面積を定義します。
  • 最後に、circle タイプで、半径に従って円周と面積をそれぞれ計算する 2 つのメンバー関数を定義します。

コード例:


// 包含 C++ 头文件
#include "iostream"

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

class Circle
{
    
    
public:
	double r;	// 成员变量 半径
	double p;	// 成员变量 周长
	double a;	// 成员变量 面积

	// 成员方法 设置半径
	void setR(double r1) 
	{
    
    
		r = r1;
	}

	// 成员方法 计算圆周长和面积
	void caculate()
	{
    
    
		p = 3.14159 * r * 2;
		a = 3.14159 * r * r;
	}

	// 获取圆周长
	double getP()
	{
    
    
		return p;
	}

	// 获取圆面积
	double getA()
	{
    
    
		return a;
	}
private:
protected:
};


int main() 
{
    
    
	// 定义圆对象
	Circle c;
	double r;


	// 提示输入圆半径
	cout << "输入圆半径 :" << endl;

	// 从命令行标准输入得到的数据 到 变量 r 指示的内存空间中
	cin >> r;
	cout << "接收到圆半径 :"<< r << endl;

	// 给 圆 对象 c 设置半径
	c.setR(r);
	// 计算圆 周长 和 面积
	c.caculate();

	// 打印计算结果
	cout << "圆周长为 :" << c.getP() << " 圆面积为 : " << c.getA() << endl;

	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
}

の結果:

输入圆半径 :
10
接收到圆半径 :10
圆周长为 :62.8318 圆面积为 : 314.159
Press any key to continue . . .

ここに画像の説明を挿入
ここに画像の説明を挿入
上記のコードでは、Circle クラスが定義されています。

class Circle
{
    
    
	...
}

現時点では、Circle はデータ型であり、コンパイラはそれにメモリを割り当てません。

Circle オブジェクト c が定義されると、メモリは c オブジェクトのメモリに割り当てられますが、メモリはスタック メモリに割り当てられることに注意してください。

	// 定义圆对象
	Circle c;

Circle *c オブジェクトを定義する場合は、そのオブジェクトにメモリ (ヒープ メモリ内のメモリ) を割り当てる必要があります。

おすすめ

転載: blog.csdn.net/han1202012/article/details/132312966