- 浏览: 586745 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (365)
- Tomcat调优 (2)
- Apache Http (20)
- Webserver安装 (5)
- Linux安装 (28)
- Linux常用命令 (17)
- C语言及网络编程 (10)
- 文件系统 (0)
- Lucene (12)
- Hadoop (9)
- FastDFS (8)
- 报表 (0)
- 性能测试 (1)
- JAVA (18)
- CSharp (3)
- C++ (38)
- BI (0)
- 数据挖掘 (0)
- 数据采集 (0)
- 网址收集整理 (3)
- Resin (0)
- JBoss (0)
- nginx (0)
- 数据结构 (1)
- 随记 (5)
- Katta (1)
- Shell (6)
- webservice (0)
- JBPM (2)
- JQuery (6)
- Flex (41)
- SSH (0)
- javascript (7)
- php (13)
- 数据库 (6)
- 搜索引擎排序 (2)
- LVS (3)
- solr (2)
- windows (1)
- mysql (3)
- 营销软件 (1)
- tfs (1)
- memcache (5)
- 分布式搜索 (3)
- 关注的博客 (1)
- Android (2)
- clucene (11)
- 综合 (1)
- c c++ 多线程 (6)
- Linux (1)
- 注册码 (1)
- 文件类型转换 (3)
- Linux 与 asp.net (2)
- perl (5)
- coreseek (1)
- 阅读器 (2)
- SEO (1)
- 励志 (1)
- 在线性能测试工具 (1)
- yii (7)
- 服务器监控 (1)
- 广告 (1)
- 代理服务 (5)
- zookeeper (8)
- 广告联盟 (0)
- 常用软件下载 (1)
- 架设自已的站点心得 (0)
最新评论
-
terry07:
java 7 用这个就可以了 Desktop desktop ...
关于java Runtime.getRunTime.exec(String command)的使用 -
HSINKING:
怎么设置打开的dos 窗口是指定的路径下
关于java调用bat文件,不打开窗口 -
liubang201010:
hyperic hq更多参考资料,请访问:http://www ...
hyperic-hq -
^=^:
STDIN_FILENO是unistd.h中定义的一个numb ...
深入理解dup和dup2的用法 -
antor:
留个记号,学习了
[转]用java流方式判断文件类型
这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处。那时觉得operator比较好玩。C++有时它的确是个耐玩的东东。operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。
1.operator overloading
C++可以通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示
view plaincopy to clipboardprint? template<typename T> class A { public: const T operator + (const T& rhs) { return this->m_ + rhs; } private: T m_; }; template<typename T> class A { public: const T operator + (const T& rhs) { return this->m_ + rhs; } private: T m_; };
又比如STL中的函数对象,重载(),这是C++中较推荐的写法,功能与函数指针类似,如下所示
view plaincopy to clipboardprint? template<typename T> struct A { T operator()(const T& lhs, const T& rhs){ return lhs-rhs;} }; template<typename T> struct A { T operator()(const T& lhs, const T& rhs){ return lhs-rhs;} };
2 operator casting
C++可以通过operator 重载隐式转换,格式如下: operator 类型T (),如下所示
view plaincopy to clipboardprint? class A { public: operator B* () { return this->b_;} operator const B* () const {return this->b_;} operator B& () { return *this->b_;} operator const B& () const {return *this->b_;} private: B* b_; }; class A { public: operator B* () { return this->b_;} operator const B* () const {return this->b_;} operator B& () { return *this->b_;} operator const B& () const {return *this->b_;} private: B* b_; }; A a; 当if(a),编译时,其中它转换成if(a.operator B*()),其实也就是判断 if(a.b_)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/szlanny/archive/2009/06/24/4295854.aspx
发表评论
-
[转载]strftime() 函数_时间格式
2011-01-12 11:21 1195[转载]strftime() 函数 (2007-12-06 1 ... -
fork函数
2011-01-11 13:23 924引用 在linux中,只有一 ... -
如何调试守护进程
2011-01-11 13:05 3219如何调试守护进程 我写 ... -
UNIX管道编程——使用pipe函数,dup函数,dup2函数
2011-01-11 10:02 51842009-12-29 11:46管道在unix ... -
c中的管道及复制描述符
2011-01-10 17:22 12481、 #include <stdio.h& ... -
如何在运行时确定对象类型(RTTI)
2011-01-10 11:45 947引用作者:NorthTibet RTTI 是“R ... -
string, char*, int类型转换 , c++强制转化
2011-01-10 10:04 16520一、 以下是常用的几种类型互相之间的转换 string 转 ... -
linux信号机制之sigaction结构体浅析
2011-01-10 00:27 1409linux 2009-02-20 16:47:00 阅读460 ... -
Linux下的管道编程技术-dup函数和dup2函数
2011-01-09 23:45 1152from [url]http://www.xxlinux.co ... -
Linux下使用C/C++访问数据库
2011-01-07 16:19 1348Linux下使用C/C++访问数据库——MySQL篇 ... -
多核分布式队列的实现:“偷”与“自私”的运用
2011-01-06 11:38 1069原创作品,允许转载, ... -
Boost和STL学习资料大全
2011-01-06 09:38 2646from http://blog.csdn.net/k2eat ... -
linux平台上编译安装boost库
2011-01-06 09:33 6743from http://dev.firnow.com/co ... -
C++多线程入门
2010-12-30 09:52 1254第1节 背景 为了更好 ... -
c++中__declspec用法总结
2010-12-29 17:47 1793c++中__declspec用法总结C++ ... -
__cplusplus的用处
2010-12-29 14:07 1067作者: Aprilgogo 发表日期: 2007-03-1 ... -
#ifdef __cplusplus深度剖析
2010-12-29 14:06 833时常在cpp的代码之中看 ... -
C和C++之间库的互相调用
2010-12-29 13:44 1061C和C++之间库的互相调用 昨晚有个朋友问我关于在C中调用C ... -
c, c++ 库调用相关知识
2010-12-29 13:41 13851。 重载是如何实现的 ... -
放在函数后面的const是什么意思?
2010-12-17 16:13 1483经常看到这样的定义: void f() const ...
相关推荐
在C++编程语言中,操作符重载是一种特殊的功能,允许程序员为已有的运算符赋予新的含义,以便在自定义类型上使用。这使得代码更加直观和自然,尤其是在处理复杂数据结构时。本主题将深入探讨操作符重载的概念、语法...
### C++操作符重载实例解析 #### 一、引言 操作符重载是C++语言中的一个重要特性,它允许我们对已有的操作符赋予新的含义,使其能够用于自定义的数据类型。本文将通过一个具体的例子——分数类的操作符重载——来...
### C++关键字和操作符替代名 #### 概述 在C++编程语言中,关键字是具有特定含义的预定义标识符,它们被语言保留用于构成语法结构的关键部分。此外,C++还支持一系列操作符,包括算术、比较、逻辑等类型。为了提高...
C++中的`operator`关键字用于实现操作符重载,这是C++语言中一个重要的特性,允许程序员自定义已有的运算符行为,以便于类对象能够更自然地进行各种操作。操作符重载使得用户定义的类型可以像基本数据类型一样进行...
### C++ 中重载 + 操作符的正确方法 #### 引言 在C++编程中,重载操作符是一项非常实用且强大的功能,能够帮助程序员以自然的方式处理自定义数据类型。对于像`+`这样的操作符而言,正确地进行重载尤为重要,因为它...
在C++编程语言中,操作符重载是一种特殊的功能,允许程序员为已有的运算符赋予新的含义,以便在用户自定义的数据类型上使用。这使得我们可以以自然且直观的方式处理对象,增强了代码的可读性。操作符重载并不创建新...
### C++操作符重载详解 C++是一种强大的面向对象编程语言,提供了众多特性来增强其功能性和灵活性,其中操作符重载就是一项关键特性。本文将深入探讨C++中的操作符重载,包括其基本概念、重载规则以及如何在实际...
### C++操作符重载专题 #### 一、引言 C++作为一种强大的面向对象编程语言,提供了多种机制来帮助开发者构建复杂的应用程序。其中一项关键特性便是**操作符重载**。通过这一特性,开发者能够对现有操作符赋予新的...
本手册将详细阐述C++中操作符重载的相关规则、建议以及如何重载`operator new`。 **一、操作符重载规则** 1. **可重载的操作符** 包括基本的算术运算符(`+ - * / % ^ & | ~ !`),比较运算符(`< > <= >= == !=`...
在C++中,操作符重载是一项非常重要的功能,它允许用户自定义现有操作符的行为,使其能用于自定义的数据类型。这对于提高代码的可读性和简化编程任务特别有用。例如,在处理复数时,我们希望使用类似`+`这样的符号来...
### 操作符重载:C++中的赋值运算符与比较运算符 #### 一、赋值运算符重载 在C++编程语言中,赋值运算符`=`用于将一个对象的值复制到另一个对象中。对于基本数据类型如整型、浮点型等,这种复制通常是直接且无害的...
在C++编程中,`new`操作符和`operator new`是两个密切相关但不完全相同的概念,它们在内存管理和对象创建方面各自承担着特定的角色。 `new`操作符是C++语言内置的关键字,用于在堆上动态分配内存并创建对象。当执行...
在C++编程语言中,操作符重载是一种重要的特性,它允许我们为自定义类型定义已有的运算符的行为。操作符重载并不意味着创建新的运算符,而是为现有的运算符赋予新的含义,使得它们可以作用于自定义类型的对象。本文...
操作符重载是C++编程语言中一种强大的特性,它允许开发者为自定义类型赋予常用操作符如加、减、乘、除等新的含义。通过操作符重载,我们可以像操作基本数据类型一样操作自定义的对象,这不仅提高了代码的可读性和...
在C++编程语言中,操作符重载是一种特殊的功能,允许我们为自定义类型赋予与内置类型(如整型或浮点型)相同的操作符含义。通过操作符重载,我们可以使用户定义的类更加直观和易用,因为它能够遵循程序员熟悉的运算...
C++中的operator有两种用法:operator overloading(操作符重载)和operator casting(操作隐式转换)。下面我们将分别介绍这两种用法。 一、operator overloading(操作符重载) operator overloading是C++中的一...
在C++编程语言中,`operator=`操作符用于对象之间的赋值。这个操作符的返回类型通常是类类型的引用,这是为了支持链式赋值(chaining assignment)和保持与原始对象的连接。以下是对`operator=`操作符返回引用的详细...
在C++编程中,操作符重载是一种强大的特性,它允许我们为自定义类型赋予标准操作符的行为。在这个场景中,我们关注的是如何通过操作符重载来实现分数与整数的混合运算,包括正负数的处理。下面将详细探讨这个主题。 ...