宁静致远

------------------------------------------------------------------------------------

VC知识库BLOG 首页 新随笔 联系 聚合 登录
  45 Posts :: 0 Stories :: 112 Comments :: 1 Trackbacks

公告

-----000来了哈000-----

留言簿(0)

随笔分类

随笔档案

文章档案

相册

技术FAQ

搜索

最新评论

阅读排行榜

评论排行榜

例:
class base
{
public:
    void fun(int param);
    void fun(char param);
};

class derive :public base
{
public:
    void fun(string param);
    using base:fun; //只能用函数名,不能带参数,表示引入基类的重载函数集,而不能是一个实例
};
posted on 2007-10-02 21:40 blog of vc_student 阅读(2859) 评论(3)  编辑 收藏

Feedback

# 哦~~~~~~~~ 2007-10-03 04:33 老梆菜
知道啦。
我怎么知道的越多,越感觉C++的语法这么怪异呀?**什么看法?

# re: 在派生类中重载基类的成员函数 2007-10-05 19:59 hpho
知道并不一定就了解, 抛个砖
class A{
public:
    void foo(){}
};

class B{
private:
   using A::foo;
};

B b; b.foo(); // 这个在vc6下是err, 在g++下却pass
明显VC把USING和存取级别关联着.

另一块砖:
class A{
public:
   ~A(){}
};

class B: public A{
private:
   using A::~A;
};
A::~A的合法性? VC6是PASS , G++则ERR

C++的语法有个特点就是单个性质去理解和使用时没什么, 一但组合其它语法规则就会出现互相干扰和变得复杂难搞!

# re: 在派生类中重载基类的成员函数 2007-10-05 22:22 blog of vc_student
也许你说的对,但更合理的设计应该是基类被派生类重载的函数集合应该是公用接口或至少是protected的,如果设计成私有的就没必要在基类中重载了!

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]