C 14 過載操作符與轉換

2022-05-04 17:30:11 字數 2440 閱讀 9332

cat.h

#pragma once

#include #include using std::string; using std::ostream; using std::istream;

class cat

cat(string name) :name(name) {};

// 過載輸入、輸出操作符

// 若供外部使用,寫非成員函式的樣子 新增友元

// 成員函式的寫法只要乙個左操作符引數

friend ostream& operator<<(ostream& out, cat& cat);

friend istream& operator>>(istream& in , cat& cat);

private:

string name;

};

cat.cpp

#include "cat.h"

ostream & operator<<(ostream & out, cat & cat)

istream & operator >> (istream & in, cat & cat)

過載函式的使用 main.cpp

#include #include #include "cat.h"

using namespace std;

int main()

book.h

#pragma once

#include #include using std::string; using std::ostream; using std::istream;

class book

book(string name, int count) :name(name), count(count) {}

friend book operator+(const book& lb, const book& rb);

friend bool operator==(const book& lb, const book& rb);

friend ostream& operator<<(ostream& out, book& b);

book operator+=(const book&rb);

private:

string name;

int count; // 數量

};book operator+(const book & lb, const book & rb)

book book::operator+=(const book & rb)

inline bool operator==(const book & lb, const book & rb)

ostream & operator<<(ostream & out, book & b)

算術符號過載後的使用

#include #include #include "book.h"

using namespace std;

int main()

下標操作符過載示例

#pragma once

#includeusing namespace std;

class foo ;

int & foo::operator(const size_t index)

inline const int & foo::operator(const size_t index) const

使用解引用操作符與箭頭符號過載,構建智慧型指標

指標計數類 scrptr.h

#pragma once

#include "screenptr.h"

#include "screen.h"

class scrptr

; ~scrptr();

};scrptr::~scrptr()

指標封裝物件 screenptr.h

#pragma once

#include "screen.h"

#include "scrptr.h"

class screenptr

screenptr(const screenptr& o) :ptr(o.ptr)

~screenptr() ;

// 過載解引用操作符 返回安全指標

screen &operator*()

// 過載箭頭操作符 ->右運算元不是表示式,是對應類成員的識別符號

screen *operator->()

private:

scrptr *ptr;

};

C Primer筆記 14 過載操作符與轉換

過載操作符的定義 過載操作符是具有特殊名稱的函式 保留字operator後接需定義的操作符符號。過載操作符具有返回型別和形參表。eg sales item operator const sales item const sales item 過載操作符必須具有乙個類型別運算元 用於內建型別的操作符其...

9 過載操作符

include includeusing namespace std class num void print 也可以在內部提供乙個 號操作符過載,但和全域性 號過載如果呼叫方法一致,就只能存在乙個 num operator num other 過載 是修改自身,不能返回新物件,所以要返回自身引用 ...

C C 過載操作符(二) 過載操作符

用於訪問一組元素中的乙個元素。預設的,陣列是支援下標訪問的。中的下標稱為 索引,key,唯一標誌符 當乙個物件設計用於包含多個元素時,可以過載操作符 比如乙個字串text包含多個元素 每個元素是乙個字串 text txt helloworld char ch text 0 比如在乙個datastor...