我剛學的知識:c++的構造函數。
在在此之前一直都處於迷惑之中,現在怕忘。所以趕緊把他寫下來,用來以後復習,可能有錯誤的地方,請大牛們指出來。
c++知識相對與c來說更加抽象,但真明白了,也就那一回事。這話是學長說的,而我剛把構造函數學會,還在暈著別的地方。
c++的構造函數分為3種:
//一。不帶參的構造函數
class car
{
public:
?car()
?{
??cout << "123" << endl;
?}
?~car()
?{
??cout << "123" << endl;
?}
};
int main()
{
?car a;
?return 0;
}//結果會輸出倆個123
//二。帶參的構造函數
class car
{
int a;//在c++中如果沒有表明數據類型,系統默認為private型
int b;
public:
car(int a,int b)//定義了一個代參的構造函數
{
cout << a << b << endl;
}
~car()
{
cout << "123" << endl;
}
};
int main()
{
car a(1,2);
return 0;
}//結果會輸出倆個123
三。委托構造函數
class clock
{
public:
clock(int a, int b, int c);
void timegive(int newH, int newM, int newG);
void timeshow();
clock() :clock(0, 0, 0){}//c++中為避免構造函數的多次出現,而且方便修改構造函數的值,故用委托構造函數
private:
int hour, minute, second;
};
clock::clock(int a, int b, int c) //為類的對象進行初始化//一
{
hour = a;
minute = b;
second = c;
}
void clock::timegive(int newH, int newM, int newG)
{
hour = newH;
minute = newM;
second = newG;
}
void clock::timeshow()
{
cout << hour << ":" << minute << ":" << second;
}
int main()
{
clock c1(0, 0, 0);
clock c2;
c1.timeshow();
c2.timeshow();
}
四。復制構造函數
//構造函數的復制函數
class car
{
public:
car(); //構造函數
car(const car &s); // & 引用符 s 復制構造函數開始時先定義一個供引用的對象,將對象car中的數據成員值復制過來
~car(); //析構函數
void print();
private:
int x;
int y;//數據成員ptr指向分配的字符串
};
car::car()
{
int x = 10;
int y = 12;
}
car::car(const car &s)
{
x = s.x;
y = s.y;
cout << "已完成拷貝" << endl;
}
void car::print()
{
cout << x << ":"<<y<<endl;
}
int main()
{
car lol;
car qwe(lol);
return 0;
}
//const修飾的數據類型是指常類型,常類型的變量或對象的值是不能被更新的。在學引用時我們會發現引用是二者都會改變
剛剛學習請多指教