很簡單 -> 寫個複數的class咯,注意些基本細節
#ifndef inc_2_9_complex_h
#define inc_2_9_complex_h
class complex
complex &operator+=(const complex &);
double real() const
double imag() const
private:
double re, im;
friend complex &__doapl(complex *, const complex &);
};inline complex &
__doapl(complex *ths, const complex &r) // 他們是什麼型別呢, this是指標型別,另乙個是complex型別
// 這個操作符是作用再左邊的,成員函式有個隱藏的引數this
// 如果裡面不是 local object,不是臨時建立出來的物件的,那就返回引用, 這裡是右邊物件加到左邊物件
inline complex & // 介面的部分
complex::operator+=(const complex &r)
inline double
imag(const complex &x)
inline double
real(const complex &x)
//inline complex
//operator + (const complex& x)
////inline complex
//operator - (const complex& x)
//;//
//}// 這裡是考慮到 複數 + 複數
inline complex
operator+(const complex &x, const complex &y) // 這裡設計為全域性函式,已經沒有類的名稱前面了 // 不會改變 注意 const,同時注意傳引用
// 然後也考慮到 複數 + 實數
inline complex
operator + (const complex& x, double y )
// 然後是 實數 + 複數
inline complex
operator + (double x, const complex& y)
// 操作符過載一定是作用在左邊這個數,可以寫成2中,成員函式或者非成員函式
ostream & // 傳回的是引用嗎,考慮到後續的用法哦
operator<<(ostream& os, const complex& x)
#endif //inc_2_9_complex_h
閒著也是閒著,那再來個 string class
#ifndef inc_2_9_string_h
#define inc_2_9_string_h
class string
private:
// 32位電腦中,乙個指標是4個byte
char* m_data; // 因為字串 有長短,不能設定乙個長度,用個指標就ok,將來利用這個指標動態分配大小
};inline
string:string (const char* cstr=0) // 建構函式
else
};inline
string::~string()
inline
string::string(const string& str) // 拷貝構造, s2(s1)
inline
string& string::operator=(const string &str) // 拷貝賦值 s3 = s1, s3本來有東西的
#endif //inc_2_9_string_h
c基礎回顧
發現乙個很好的c學習 做了一些練習 include include define arrlen arr sizeof arr sizeof arr 0 f int a ff int a fff char ch char ffff char ch fffff int intarr intarr 2 a...
C語言基礎回顧
這節課講的特別基礎,複習了大概的基本標示符,資料型別,常變數的特性,還有程式的基本結構 於是下面是課後習題 打漁曬網 中國有句俗語叫 三天打魚兩天曬網 某人從1990年1月1日起開始 三天打魚兩天曬網 問這個人在以後的某一天中是 打魚 還是 曬網 include int count day int ...
C 基礎回顧一
近期,翻看基礎的 c primer 溫故而知新,希望自己養成好習慣,在某一領域深耕耘,路漫漫而修遠,吾將上下而求索。1.類的內聯成員函式 在類中常有一些規模較小的函式適合於被宣告成內聯函式,定義在類內部的成員函式是自動inline的。2.可變資料成員 mutable 可變資料成員永遠都不是const...