第一種方式,物件屬性是指標
#include
"iostream"
#include
"iomanip"
#include
"string.h"
#include
"cmath"
#include
"algorithm"
//演算法標頭檔案
using namespace std;
//利用物件對陣列相加
class group
group
(int
* p,
int len)
void
tostring()
cout<
}//陣列相加
group operator+
(group &q)
// return q;
// cout<
//例項化物件,否則就呼叫無參構造方法,p指向null了
int a[5]
=;t.p = a;
//這裡又定義了乙個陣列,賦值給t的指標屬性,避免了原陣列值被覆蓋問題
t.len = len;
for(
int i=
0; i
)return t;}}
;int
main()
,b[5]=
; group g1
(a,5),
g2(b,5)
,g; g1.
tostring()
; g2.
tostring()
;// g=g1.operator+(g2);
g = g1+g2;
g.tostring()
; cout<
g1.tostring()
; g2.
tostring()
;return0;
}
第二種方式,物件屬性是陣列
#include
"iostream"
#include
"iomanip"
#include
"string.h"
#include
"cmath"
#include
"algorithm"
//演算法標頭檔案
using namespace std;
//利用物件對陣列相加
class group
}group
(int
* p)
}void
tostring()
cout<
}//陣列相加
group operator+
(group &q)
return t;}}
;int
main()
,b[5]=
; group g1
(a),
g2(b)
,g; g1.
tostring()
; g2.
tostring()
;// g=g1.operator+(g2);
g = g1+g2;
g.tostring()
; cout<
g1.tostring()
; g2.
tostring()
;return0;
}
友元函式實現
#include
"iostream"
#include
"iomanip"
#include
"string.h"
#include
"cmath"
#include
"algorithm"
//演算法標頭檔案
using namespace std;
//利用物件對陣列相加
class group
group
(int
* p,
int len)
void
tostring()
cout<
}//陣列相加
//友元函式實現
friend group operator+
(group &p, group &q);}
; group operator+
(group &q1, group &q2)
; t.p = a;
t.len = q1.len;
for(
int i=
0; i
)return t;
}int
main()
,b[5]=
; group g1
(a,5),
g2(b,5)
,g; g1.
tostring()
; g2.
tostring()
;// g=g1.operator+(g2);
g = g1+g2;
g.tostring()
; g1.
tostring()
; g2.
tostring()
;return0;
}
在構造方法裡new新開闢空間但要主要要在析構函式裡delete掉
#include
"iostream"
#include
"iomanip"
#include
"string.h"
#include
"cmath"
#include
"algorithm"
//演算法標頭檔案
using namespace std;
//利用物件對陣列相加
class group
group
(int
* p,
int len)}~
group()
void
tostring()
cout<
}//陣列相加
group operator+
(group &q)
;//定義陣列
group t
(a,this->len)
;// 有參構造,new新開闢了記憶體空間,儲存陣列資料,這樣就不會出現因為釋放記憶體而沒值的情況了
c 運算子過載實現陣列案例
includeusing namespace std class array 建構函式 array array int m length 拷貝建構函式 array array const array obj 析構函式 array array 求陣列的長度 int array length 過載操作符...
C 運算子過載的實現
1.怎麼實現運算子過載 1.1 過載的實質 把運算子當作函式去實現另一種功能 1.2 具體實現 函式返回值 operator 運算子 引數 operator 運算子當作函式 2.運算子的分類 2.1 友元過載 友元函式的形式過載 引數個數等於運算元 2.2 類過載 類的成員函式過載 引數個數 運算元...
C 運算子過載 過載特殊運算子
賦值運算子用於同類物件間的相互賦值。賦值運算子只能被過載為類的非靜態成員函式,不能過載為友元函式和普通函式。對於使用者自定義的類而言,如果沒有過載賦值運算子,那麼c 編譯器會為該類提供乙個預設的過載賦值運算子成員函式。預設賦值運算子的工作方式是按位對拷,將等到右邊物件的非靜態成員拷貝給等號左邊的物件...