首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于c++虚函数和操作符重载等的一些请问

2012-12-30 
关于c++虚函数和操作符重载等的一些请教1. virtual void ShowMe()0这相当于对函数赋值,但实际仅仅是生命

关于c++虚函数和操作符重载等的一些请教
1. virtual void ShowMe()=0;
这相当于对函数赋值,但实际仅仅是生命一个虚函数;
请问当写成这样,编译器和处理器,是作何操作?或者仅仅是一种语法的规定?
2.代码如下:
Test operator ++()
{
return this->a++;
}
对于以上代码,因为"Test operator ++()",所以返回值应该是Test类型的;但实际返回的是this->a中a的类型(可能是int或者char等);请问这是为什么可以这样。
注:上述代码通过编译,而且返回的确实是Test类型,这是在返回的时候this->a类型被强制转换了吗?
谢谢!

[解决办法]
1. namespace myname = std ; myname是std的别名.可以用myname::cout替代std::cout

2. 隐式转换一般就是static_cast<>.情况比较多,我举不完.
类层次从上往下的转换derived* p = static_cast<base*>( pBase )
需要用dynamic_cast<>

const句柄(指针,引用,迭代器)到非const句柄
const int* p = new int() ;
int* p = static_cast<int*>(p) // 要用const_cast<> casts away constness

3.任何底层需要用reinterpret_cast<>地方.
double d = 112.75 
int& ref = static_cast<int&>( d ) //要用reinterpret_cast<>,不过ref不等于112。而是某个很大的数.

热点排行