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

基础有关问题

2012-02-08 
基础问题C++基础不好,请各位高手指点一下:例如:char*m_bLetter//是定义一个指针classA{}classB{}A*AObjB

基础问题
C++基础不好,请各位高手指点一下:

例如:char   *m_bLetter;   //是定义一个指针

class   A
{
}

class   B
{
}

A   *AObj;
B   *BObj;
AObj   =   (A   *)BObj;   //强制类型转换

我想问的是强制类型转换直接(A)BObj不就可以了吗?干吗要(A   *)Obj?

(A   *)和char   *定义指针有什么不同?


[解决办法]
学C#/Java出身的?
[解决办法]
(A)BObj 是转换为A 类型
(A*)BObj 是转换为A 指针类型
而你的BObj本身就是指针
[解决办法]
不可以的,要想强制类型转换(A)BObj,必须在类B中定义转换函数:
class B
{
public:
operator A();
};

B::operator A()
{}
否则编译报错。

A *表示指向类型为A的指针类型。
char *表示指向类型为char的指针类型
[解决办法]
为什么 AObj = (A *)BObj; 内存地址 = 强制转换后的指针?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
前一个内存地址是指向 B 类型的指针,后一个指向 A 类型的指针,这就是强制转化的目的
[解决办法]
http://vip2.6to23.com/zhuangaiping/

热点排行