C 隱式型別轉換 operator T

2021-06-18 15:23:44 字數 1131 閱讀 5609

對於operator關健字用於運算子過載這我們都知道,其實operator還有另外一種作用:強制型別轉換。上一周為了對應專案中乙個問題,同事幫助寫了乙個類,使用到了operator的強制型別轉換作用,後來source review的時候幾個leader也不明白其作用,問我是怎麼回事,當時我也只是一知半解,無奈解析了半天更天也沒有讓leader明白,汗。。。後來讓這們同事來解析才清楚。

下面通過乙個示例來說明:

/*************************test_operatorconvert.h*************************/

#ifndef test_operatorconvert_h

#define test_operatorconvert_h

const int max_path2 = 256;

class test_operatorconvert;

#endif

/*************************test_operatorconvert.cpp*************************/

#include "stdafx.h"

#include "test_operatorconvert.h"

#include using namespace std;

test_operatorconvert::test_operatorconvert()

test_operatorconvert::test_operatorconvert(char *str)

test_operatorconvert::~test_operatorconvert()

// 這個函式實現的功能與operator char*()的功能一致。

char *test_operatorconvert::getstr()

test_operatorconvert::operator char*()

int main(int argc, char* argv)

有些人稱這種方法為:隱式型別轉換,實現的基本方法就是:operator type_name();

operator運算元 隱式型別轉換

3.參考資料 對於 operator 運算子,除了常用的operator overloading 操作符過載 之外,還有operator casting 操作隱式轉換 的用法。c 可以通過operator實現過載操作符,格式如下 return type operator operand parame...

C 隱式型別轉換

c 定義了一組內建型別物件之間的轉換標準,在必要時它們被編譯器隱式的應用到物件上。發生隱式型別轉換的情景 1,在混合型別的算術表示式中 轉換原則 轉換為最寬的資料型別。也可叫,算術轉換。int ival 5 double dval 3.14 ival 被提公升為double型別 ival dval ...

C 隱式型別轉換

眾所周知,c 的基本型別中並非完全的對立,部分資料型別之間是可以進行隱式轉換的。所謂隱式轉換,是指不需要使用者干預,編譯器私下進行的型別轉換行為。很多時候使用者可能都不知道進行了哪些轉換。c 物件導向的多型特性,就是通過父類的型別實現對子類的封裝。通過隱式轉換,你可以直接將乙個子類的物件使用父類的型...