C ++の調査では、9クラスの定義と初期化について説明しています。

C ++では、クラスを使用して独自のデータ型を定義できます。では、独自のデータ型を理解するにはどうすればよいでしょうか。たとえば、int、float、char ...など、すべてデータ型である一般的なものです。次に、たとえば、時、分、秒、およびを含むclockというデータ型を定義します。を表示できれば、クラスを使用して独自のデータ型クロックを定義できます。
次のように定義されます

class clock {
    
    
public:
	void setime(int hour, int minute, int second);
	void showtime();
	clock(int newh, int newm, int news);//构造函数
	clock();//默认构造函数
private:
	int hour;
	int minute;
	int second;

};

class:宣言クラスのキーワード、宣言クラスの基本形式。
時計:クラス名。時間、分、秒を意味します。
public、private:クラス内のメンバー属性を示します。publicは、クラスメンバー属性がパブリックであり、クラスの外部からアクセスできることを示します。特定のアクセス形式は、クラス名です。メンバー名。クラスのメンバーは次のようになります。データまたは関数名のいずれか、たとえば、データ型がクロックで、アクセス形式がtime.setime()
privateであるsetime関数に時間内にアクセスしたい:これはクラスのプライベートメンバーであり、アクセスできませんクラス外ですが、メンバー内でアクセスできます。
実際、保護された属性メンバーもあります。これはprivateに似ていますが、いくつかの点でわずかに異なります。これについては、後の記事で紹介します。
コンストラクター:デフォルトのコンストラクターと自分で定義したコンストラクターが含まれています。コンストラクターの機能は、privateのメンバーなどのメンバーを初期化することです。構築形式はクラス名(パラメーター)であり、コンストラクターは戻り値を持つことができません。上記の時計を例にとると、コンストラクターの形式は次のとおりです。

clock(int newh, int newm, int news);//构造函数
clock();//默认构造函数

関数定義:クラス内の関数メンバーを定義した後、関数はクラス外またはクラス内で定義できます。定義メソッドは、戻り値タイプクラス名:関数名(パラメーター)です。上記のshowtime関数を例として取り上げます。 。定義の方法は

void clock::showtime()
{
    
    
	cout << "time" << " is   " << hour << " : " << minute << "   : " << minute << endl;

}

クラスの定義とコンストラクターの役割を理解しやすくするための例を次に示します。クロッククラスを定義して2つの異なる方法で初期化し、初期化されたデータを出力するだけです。完全なコードは次のとおりです。

# include <iostream>
# include <string>
# include <vector>
using namespace std;
class clock {
    
    
public:
	void setime(int hour, int minute, int second);
	void showtime();
	clock(int newh, int newm, int news);//构造函数
	clock();//默认构造函数
private:
	int hour;
	int minute;
	int second;

};

void clock::setime(int newhour, int newminute, int newsecond)
{
    
    
	hour = newhour;
	minute = newminute;
	second = newsecond;
}
void clock::showtime()
{
    
    
	cout << "time" << " is   " << hour << " : " << minute << "   : " << minute << endl;

}
 clock::clock(int newh, int newm, int news):hour(newh),minute(newm),second(news)
{
    
    
	 //初始化列表,对象进行简单的初始化时可以采用此方式,可以优先执行初始化列表从而提高运行的速度
}
 clock::clock():hour(0),minute(0),second(0) {
    
    }
int main()
{
    
    
	/*clock  time;*/
	//time.setime(16, 41, 35);
	//time.showtime();

	//默认构造函数
	clock time1;
	time1.showtime();
	//构造函数初始化
	clock time2(9, 27, 6);
	time2.showtime();
}

上記で使用した初期化リストは、対応する変数に値を割り当てるだけなので、実際にはクイック初期化の形式です。関数本体に代入ステートメントを書き込むのと同じで、実行結果を図に示します。
プログラム実行結果
上記は、単純なクラスの定義とコンストラクターの使用法です。

おすすめ

転載: blog.csdn.net/qq_41803340/article/details/112506471