過載操作符
1、操作符過載
1.1 讓同樣的操作符執行不同的操作,使用操作符操作非預設型別的運算元
1.2 const a & operator = (const a & x)
2、深拷貝
2.1 避免自賦值(if(this != &x))
-- 釋放掉指標成員已經指向的記憶體空間,避免記憶體洩漏
-- 為指標成員開闢新堆記憶體空間
-- 向新記憶體空間拷貝內容
-- 返回*this,即返回新物件本身
a、引入深拷貝與過載賦值運算子
boy.h
#ifndef __c__no730class__boy__
#define __c__no730class__boy__
#include using namespace std;
#define n 12
class boy
;#endif /* defined(__c__no730class__boy__) */
boy.cpp
#include "boy.h"
boy::boy(char * n, char * g, int p):phone(p)
boy::~boy()
cout << "析構boy" else
strcpy(name, newname);
}void boy::changetel(char *newtel)
void boy::print()
b、實現深拷貝與過載賦值運算子
vector.h
#ifndef __c__no730class__vector__
#define __c__no730class__vector__
#include using namespace std;
class vector
;#endif /* defined(__c__no730class__vector__) */
vector.cpp
#include "vector.h"
vector::vector(int s, int an_array)
vector::~vector()
}const vector & vector::operator = (const vector & x)
return *this;
}void vector::print()
bool vector::operator == (const vector &x)
return yesorno;
}
main.cpp
#include "vector.h"
int main()
; int array2[5] = ;
vector v1 (3, array1);
vector v2 (5, array2);
v1.print();
v2.print();
v1 = v2;
v1.print();
v2.print();
bool c = (v1 == v2);
cout << c girlbaby.h
#ifndef __c__no730class__girlbaby__
#define __c__no730class__girlbaby__
#include using namespace std;
class girlbaby
;#endif /* defined(__c__no730class__girlbaby__) */
girlbaby.cpp
#include "girlbaby.h"
girlbaby::girlbaby(char *n, double h)
girlbaby::~girlbaby()
cout << "析構girlbaby" << endl;
}const girlbaby & girlbaby::operator = (const girlbaby & x) //過載賦值運算子
return *this;
}void girlbaby::print()
girlbaby::girlbaby(const girlbaby &x) //拷貝建構函式
d、練習,簡單復合類過載賦值運算子
toy.h
#ifndef __c__no730class__toy__
#define __c__no730class__toy__
#include using namespace std;
class toy
;#endif /* defined(__c__no730class__toy__) */
toy.cpp
#include "toy.h"
toy::toy(int n)
void toy::sett(int n)
int toy::getnumber()
void toy::print()
toy::~toy()
baby.h
#ifndef __c__no730class__baby__
#define __c__no730class__baby__
#include #include "toy.h"
class baby
;#endif /* defined(__c__no730class__baby__) */
baby.cpp
#include "baby.h"
baby::baby(char *m, int a, int n)
第五節 操作符詳解
5位運動員參加了10公尺臺跳水比賽,有人讓他們 比賽結果 a選手說 b第二,我第三 b選手說 我第二,e第四 c選手說 我第一,d第二 d選手說 c最後,我第三 e選手說 我第四,a第一 比賽結束後,每位選手都說對了一半,請程式設計確定比賽的名次。日本某地發生了一件 案,警察通過排查確定殺人 必為4...
第五節 檔案操作
read讀取檔案全部內容,預設就是讀模式,所以不需要指定模式 f open test2.py encoding utf8 data f.read print data f.close redline讀取檔案的一行內容,列印的時候加上end 否則會有空格 f open test2.py encodin...
第五節swift 自增,自減操作符
像c語言一樣,swift也提供了自增操作符 和自減操作符 方便快速的給當前變數值加1或減1。你可以在整型或浮點型上面使用這些操作符。每次呼叫 i的時候,i的值都會加1.本質上,i 就是 i i 1的簡寫。同樣的,i是 i i 1的簡寫。符號 和 即可以用作前序,也可以用作後序操作符。i和 i 都可以...