[C++]4.1クラス-作成者
3966 ワード
関数のオーバーロード
かふか多すぎる.過負荷をもたらす.
関数過負荷も意味上、関数過負荷となります.
しかし概念的にはこの概念は正しい
#include <iostream>
void print(int x) { std::cout << "int : " << x << std::endl;}
void print(char x) { std::cout << "char : " << x << std::endl;}
void print(double x) { std::cout << "double : " << x << std::endl;}
int main(){
int a = 1;
char b = 'c';
double c = 3.2f;
print(a);
print(b);
print(c);
return 0;
}
print()関数は複数回作成され,複数回別々に呼び出され,思いついた値が出てくる.
変更のタイプ変更のタイプ:intchar、unsigned char、shortint、unsigned integensed shortdoublefloatinum
メンバー関数宣言
クラスのメンバー変数をこのように宣言することもできます.#include <iostream>
class Date{
int year_;
int month_;
int day_;
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일수를 구함
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
};
void Date::SetDate(int year, int month, int date){
...
}
void AddDay(int inc){
...
}
...
int main(){
Day day;
...
day.ShowDate();
...
return 0;
}
どうして授業で発表しないのですか.
#include <iostream>
class Date{
int year_;
int month_;
int day_;
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일수를 구함
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
};
void Date::SetDate(int year, int month, int date){
...
}
void AddDay(int inc){
...
}
...
int main(){
Day day;
...
day.ShowDate();
...
return 0;
}
コンストラクタ
クラスを作成するときに、複数の値を指定したり、ジェネレータに設定したりできます.#include <iostream>
class Date {
int year_;
int month_; // 1 부터 12 까지.
int day_; // 1 부터 31 까지.
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일 수를 구한다.
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
// 생성자
Date(int year, int month, int day) {
year_ = year;
month_ = month;
day_ = day;
}
};
...
int main(){
Date day(2022, 2, 17);
day.ShowDate();
...
return 0;
}
#include <iostream>
class Date {
int year_;
int month_; // 1 부터 12 까지.
int day_; // 1 부터 31 까지.
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일 수를 구한다.
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
// 생성자
Date(int year, int month, int day) {
year_ = year;
month_ = month;
day_ = day;
}
};
...
int main(){
Date day(2022, 2, 17);
day.ShowDate();
...
return 0;
}
次にDate()に適切に触れ,設定値に適合するクラスを生成した.
Default作成者
ジェネレータを作成せずにクラスを読み込むと、何も起こりません.
Default作成者は、このようなことを防止するために作成者にデフォルト値を設定させる作成者です.
class Date {
int year_;
int month_; // 1 부터 12 까지.
int day_; // 1 부터 31 까지.
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일 수를 구한다.
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
// Default 생성자
Date() {
year_ = 2022;
month_ = 02;
day_ = 17;
}
};
ジェネレータ過負荷
複数のジェネレータを生成できます.また、複数のジェネレータを作成して使用することもできます.
ジャワを勉強している間に友達が自動的にこれを手伝ってくれます...
class Date {
int year_;
int month_; // 1 부터 12 까지.
int day_; // 1 부터 31 까지.
public:
void SetDate(int year, int month, int date);
void AddDay(int inc);
void AddMonth(int inc);
void AddYear(int inc);
// 해당 월의 총 일 수를 구한다.
int GetCurrentMonthTotalDays(int year, int month);
void ShowDate();
// Default 생성자
Date() {
year_ = 2022;
month_ = 02;
day_ = 17;
}
// 생성자
Date(int year, int month, int day) {
year_ = year;
month_ = month;
day_ = day;
}
};
Reference
この問題について([C++]4.1クラス-作成者), 我々は、より多くの情報をここで見つけました https://velog.io/@psh4204/C-4.1-클래스-생성자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol