毎日C ++の改善のヒントを学ぶ:項目01:C ++を言語フェデレーションとして扱う

C ++に慣れてください

このブログ投稿とこのシリーズは、「Effective C ++」を見ることについての私の考えであり、毎日C ++を改善するためのちょっとしたコツを学びます。

Article 01:C ++を言語フェデレーションとして扱う

今日のC ++は、すでにマルチパラダイムプログラミング言語であり、手続き型、オブジェクト指向、機能、汎用、およびメタプログラミングの形式を同時にサポートする言語です。

C ++言語を理解するには、メインのサブ言語を知っている必要があります。4つあります。

1.C。

C ++はCに基づいています。ブロック、ステートメント、プリプロセッサ、組み込みデータ型、配列、およびポインタはすべてCから取得されます。多くの場合、問題に対するC ++のソリューションは、単なる高レベルのソリューションです。C++のCコンポーネントを使用して問題を処理すると、高効率のガイドラインでCの制限が見つかります。テンプレートなし、オーバーロードなし、異常はありません。

2.オブジェクト指向C ++。

クラスの構築と破棄、カプセル化、継承、ポリモーフィズム、仮想(仮想)関数(動的バインディング)...など。

3.テンプレートC ++。

これはC ++のジェネリックプログラミングの部分であり、テンプレート関連の考慮事項と設計はC ++全体に浸透しています。テンプレートの力は強力であり、新しいプログラミングパラダイムであるテンプレートメタプログラミング(TMP、テンプレートメタプログラミング)をもたらします。

4.STL。

STLはテンプレートライブラリです。これは、コンテナー、イテレーター、アルゴリズム、および関数オブジェクトの規則との優れた緊密な調整と調整を備えています。

//2.面向对象C++。类的构造和析构,封装、继承、多态、virtual函数(动态绑定).....等等。
class Base
{
    
    
public:
	Base()   //构造
	{
    
    
		//.....
	}
	~Base()   //析构
	{
    
    
		//..
	}

};

class Derive : public Base   //Dervie类继承于Base类
{
    
    
	//.....
};

//3.模板(template)C++。这是C++的泛型编程部分,模板相关的考虑与设计弥漫整个C++。模板的威力强大,带来了崭新的编程范型,template metaprogramming(TMP,模板元编程)。

//函数模板
template<typename T>
T swap01(T& a, T& b)      //提供了交换数据函数的模板,以后可以传入不同数据类型的函数参数
{
    
    
	T temp = a;
	a = b;
	b = a;
}


int swap02(int& a, int& b) //非函数模板,以后调用改函数只能传入int型的函数参数
{
    
    
	int temp = a;
	a = b;
	b = temp;
}

//类模板
template<class T>
class A
{
    
    
public:
	T m;
};

class B :public A<int>    //继承类模板必须给出一个确定的类型
{
    
    

};

おすすめ

転載: blog.csdn.net/weixin_50188452/article/details/111033327