- 浏览: 56946 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
在C++中有一个特殊的运算符重载方法--类型转换运算符重载,形如:operator type();
Code
class CDemo{
public:
CDemo(int x,int y){
this->_x = x;
this->_y = y;
}
operator int(){ // 运算符重载
return _x;
}
private:
int _x;
int _y;
};
Code
int _tmain(int argc, _TCHAR* argv[])
{
CDemo demo(10,30);
cout<<demo<<endl;
return 0;
}
运行结果:10
即_x的值,int()对demo进行了隐式类型转换。如果去除重载函数,则报error:二进制“<<”: 没有找到接受“CDemo”类型的右操作数的运算符(或没有可接受的转换).说明<<在遇到无法接受的类型时,会努力找到使之运行
的转换,直到失败。
Code
class CDemo{
public:
CDemo(int x,int y){
this->_x = x;
this->_y = y;
}
operator int(){ // 运算符重载
return _x;
}
private:
int _x;
int _y;
};
Code
int _tmain(int argc, _TCHAR* argv[])
{
CDemo demo(10,30);
cout<<demo<<endl;
return 0;
}
运行结果:10
即_x的值,int()对demo进行了隐式类型转换。如果去除重载函数,则报error:二进制“<<”: 没有找到接受“CDemo”类型的右操作数的运算符(或没有可接受的转换).说明<<在遇到无法接受的类型时,会努力找到使之运行
的转换,直到失败。
发表评论
-
高精度
2011-08-31 20:40 1000之前提到过在商业运算中要使用BigDecimal来进行相关的钱 ... -
java中如何进行高精度运算
2011-08-31 20:32 795import java.math.BigDecimal; im ... -
win7下安装vs2008
2011-01-09 23:28 848在win7下安装VS2008有点不太让人愉快,不过白痴还是找到 ... -
设置响应头字段的些许应用
2010-12-11 13:04 1059禁止浏览器缓存当前文档内容 只要增加如下的响应头字段: r ... -
正则表达式
2010-12-11 12:39 582整理资料如下: \\ 反斜杠 \t 间隔 ('\u0009' ... -
应该懂的基础问题
2010-12-11 12:14 696问题一:我声明了什么! String s = &quo ... -
Java中的堆栈
2010-12-11 10:59 652Java把内存划分成两种:一种是栈内存,一种是堆内存。 ... -
Java IO 小结
2010-12-11 10:51 602什么是数据流 ----------数据流是指所有的数据通信通道 ... -
字符转换
2010-11-30 20:43 638问:怎样将GBK 编码的汉字转换成为 UTF-8 编码的汉 ... -
进制转换
2010-11-30 20:42 795计算机操作里面时常要牵涉到二进制、十进制、十六进制等。特别是在 ... -
多叉树解决复杂表头问题
2010-11-30 20:21 785现代化WEB项目中少不了要用到报表展现.对于中国式报表来说,复 ... -
关于java编码的转换
2010-11-30 20:17 576问:怎样将GBK 编码的汉字转换成为 UTF-8 编码的汉 ... -
编译器报:未调用原型函数(是有意用变量定义的吗?)(本文为原创,转载清注明出外)
2010-11-30 20:08 1818MSDN解释:编译器检测到未使用的函数原型。如果有意将该原型作 ... -
ATL分解字符串
2010-11-30 20:05 754一个简单的分解字符串的方法: Code vector< ... -
java字符集(三)之java.io
2010-11-30 20:04 927java IO 的输出分两种,字节流: InputStream ... -
java字符集(二)
2010-11-30 20:03 666知道java的字符集编码,那么java是怎么读取内存中的字节转 ... -
编码字符集与字符集编码的区别(转)
2010-11-30 20:03 653需要再一次强调的是,无论历史上的UCS还是现如今的Unicod ... -
Unicode与UCS的历史恩怨(转载)
2010-11-30 19:59 551ASCII及相关标准 ... -
Java字符集(一)
2010-11-30 19:57 660UNICODE,GBK和BIG5就是编码的值,而utf-8,u ...
相关推荐
本教程将深入探讨C++中的转换运算符重载,这是一个特殊类型的运算符重载,它使得类对象可以被隐式地转换为其他类型。 转换运算符(也称为类型转换运算符或类型构造函数)是一种特殊的成员函数,它没有参数,返回值...
例如,可以重载类型转换运算符将复数转换为字符串或其他类型。 例如,将复数转换为字符串的转换运算符可以这样实现: ```cpp class Complex { public: operator string() const { return "(" + to_string(real) ...
在C++编程语言中,函数重载(Overloading)和运算符重载(Overloading)是两种关键的多态性实现方式,而类型转化(Type Conversion)则涉及到数据类型的转换和兼容性问题。这些概念是C++程序员必备的知识点,理解和...
在C++编程语言中,运算符重载是面向对象特性的一个重要组成部分,它允许程序员为已有的运算符赋予新的含义,以便在自定义的数据类型(如类)中使用。本实验报告聚焦于C++中的运算符重载应用,旨在帮助学生理解和掌握...
C++常用运算符重载简介 C++运算符重载是指将操作符赋予新的意义,以便在用户定义的类中使用。运算符重载的目的在于将操作符添加到自已的类中,以方便类对象之间的运算,例如使用+、-、*、/等运算符。 为什么要重载...
本篇文章将深入探讨C++中的运算符重载以及相关的函数对象和类型转换。 一、运算符重载的概念 运算符重载并不创建新的运算符,而是为已有的运算符赋予新的意义。重载是通过在类中定义成员函数或友元函数来实现的,...
C++中的运算符重载是一种强大的技术,它允许开发者重新定义C++语言中固有的运算符的行为,使得编程更加灵活和方便。在本节中,我们将深入探讨C++中的运算符重载机制、方法和应用。 一、运算符重载的机制 在C++中,...
运算符重载是一种C++特性,它允许程序员为自定义的数据类型(如类)重定义C++中的预定义运算符的行为。这意味着我们可以指定当这些运算符应用于特定类型的对象时应执行的操作。例如,我们可以定义一个复数类,并重载...
运算符重载是C++语言中的一项重要特性,它允许开发者为用户自定义的数据类型(如类)赋予标准运算符新的含义,使得这些运算符在处理这些特定类型时能够执行相应的操作。运算符重载的核心在于,通过创建与运算符关联...
运算符重载 、运算符重载规则 1.重载运算符的限制 2.运算符重载的语法形 式 、用成员或友元函数重载运算符 1.一元运算符2.二元运算符 3.用成员函数重载运算符 4.用友元函数重载 条件 ②例子 ③注意 5.讨论 6.总结 三...
2013级,C++程序设计课件。第10章 运算符重载,内容 10.1 什么是运算符重载 10.2 运算符重载的方法 10.3 重载运算符的规则 10.4 运算符重载函数作为类成员函数和友元函数 ...10.8 不同类型数据间的转换
- C++引入了新的类型转换运算符,如 `static_cast<>`、`dynamic_cast<>`、`const_cast<>` 和 `reinterpret_cast<>`。这些运算符旨在提供更安全、更清晰的类型转换方式。由于它们是C++语言的关键部分,因此不允许被...
在C++中进行运算符重载时,开发者需要注意多个方面的问题,包括但不限于二元运算符重载的实现方式、考虑用户的使用习惯、继承性和友元函数的使用等。通过遵循良好的设计原则和实践,可以使运算符重载更加高效、安全...
在调用运算符重载函数时,系统将自动转换成对重载函数的调用格式,例如:<左操作对象>.<operator><重载运算符>(右操作数),例如c1.operator+(c2)。 本章介绍了友元函数和运算符重载的概念、定义方法、调用过程及...
在C++编程语言中,运算符重载是面向对象特性的一部分,它允许程序员为自定义类型(如这里的“复数类”)赋予已有的运算符新的含义。这使得使用自定义类型的代码更接近自然语言,提高了可读性和易用性。在VC++环境下...
在C++中,运算符重载是一种关键特性,允许程序员为自定义类型赋予标准运算符的新含义,从而使得代码更加简洁易读。运算符重载通过定义一个函数来实现,这个函数会在需要执行相应运算符操作时被系统自动调用。实质上...
运算符重载是C++语言中的一种特性,允许用户重新定义已有运算符的行为,使得用户定义的数据类型可以像内置类型一样使用运算符。 运算符重载的实现是通过重载运算符的方式来实现的,例如重载“+”和“-”运算符来...
运算符重载是C++语言中的一个重要特性,它允许我们为自定义数据类型定义运算符的行为,使得操作更加直观和自然。本节将详细介绍运算符重载的相关规则、语法形式以及一些典型运算符的重载实例。 6.1 运算符重载规则 ...
// 重载类型转换运算符(可选) operator double() const { return real; } }; ``` ##### 2. 重载加法运算符 为了实现非成员、非友元的加法运算符重载,我们需要定义一个独立的函数: ```cpp Complex ...