注册 登录
编程论坛 C++教室

请教个类指针的问题!!!

saltss 发布于 2008-10-16 17:04, 753 次点击
((类名 *)类指针)->类成员函数(void)

前面的“类名*”是什么意思,有什么作用?
谢谢!!!

[[it] 本帖最后由 saltss 于 2008-10-16 17:07 编辑 [/it]]
6 回复
#2
choco10242008-10-16 17:29
给个例子先
#3
debroa7232008-10-16 18:45
类名* 是强转,它告诉编译器,我后面的那个符号是一个指针,它是"类名"的对象指针。
在类继承里会用到它。将一个子类强转成父类。
当然语法上可以将任何类型的指针强转成某个类的指针,不过实践中你的确保它的安全性,不然出错了可别找我。
#4
saltss2008-10-16 22:50
哦,谢谢了!!!
#5
wyy123_20082008-10-16 22:51
我还是不太懂哎
#6
saltss2008-10-16 22:56
#include<iostream>
using namespace std;
class A{
public:
    virtual void fa(void){cout<<"A::fa1"<<endl;}    
    void fb(void){cout<<"A::fb2"<<endl;}            
};
class B:public A{
public:
    void fa(void){cout<<"B::fa1"<<endl;}        
    void fb(void){cout<<"B::fb2"<<endl;}    
};
void main(){
    A *pa=new A;
    A *pb=new B;
    pa->fa();
    pb->fb();
    pb->fa();
    pb->A::fa();
    ((B*)pb)->fb();
}

测试程序
#7
kakaqq2008-10-17 11:27
(int *)
(类名 *)
这不都一样吗
用class 类名定义的也是一种数据类型。这个类名有什么问题?
1