r*l
2 楼
(CS版人气太差,发到这里请教一下各位高手)
如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
否被重载呢?
如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
否被重载呢?
a*6
9 楼
想办法转专业学习。
r*e
14 楼
http://stackoverflow.com/questions/4741271/ways-to-detect-wheth
【在 r******l 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: (CS版人气太差,发到这里请教一下各位高手)
: 如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
: 下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
: 否被重载呢?
【在 r******l 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: (CS版人气太差,发到这里请教一下各位高手)
: 如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
: 下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
: 否被重载呢?
d*x
16 楼
既然这样,lz需要一些相对复杂的解决方案。。。
情况
数是
【在 r*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: http://stackoverflow.com/questions/4741271/ways-to-detect-wheth
情况
数是
【在 r*******e 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: http://stackoverflow.com/questions/4741271/ways-to-detect-wheth
t*t
18 楼
假设lz定义的这个base class function is void a()
在base定义另一个protected function do_something()
如果derived class reimplemented a()
class derived: public base{
virtual void a()
{
base::do_something();
}
};
在base定义另一个protected function do_something()
如果derived class reimplemented a()
class derived: public base{
virtual void a()
{
base::do_something();
}
};
r*l
24 楼
你这个大概跟我要的相反。我要的是当a被redefine的时候才执行do_something,你这
个是当a没被redefine的时候执行。我说的base class里面的a就是virtual void a() {
return; }而已。但是如果用户在derived class里面redefine了a的话,则base class
就要执行do_something。
【在 t****t 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 假设lz定义的这个base class function is void a()
: 在base定义另一个protected function do_something()
: 如果derived class reimplemented a()
: class derived: public base{
: virtual void a()
: {
: base::do_something();
: }
: };
个是当a没被redefine的时候执行。我说的base class里面的a就是virtual void a() {
return; }而已。但是如果用户在derived class里面redefine了a的话,则base class
就要执行do_something。
【在 t****t 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 假设lz定义的这个base class function is void a()
: 在base定义另一个protected function do_something()
: 如果derived class reimplemented a()
: class derived: public base{
: virtual void a()
: {
: base::do_something();
: }
: };
w*r
25 楼
检查一下函数指针地址
后来查了一下,这是不可能的。
后来查了一下,这是不可能的。
t*t
26 楼
我的意思是这样
class base{
public:
virtual void a()
{
//do nothing
}
protected:
void do_something()
{
//do something here
}
};
class derived : public base{
public:
virtual void a()
{
base::do_something();
}
};
我估计一般的情况是base pointer to derived class.
suppose there's another derived class.
class derived_2:public base{
// doesn't implement a()
};
base * p1 = new derived();
base * p2 = new derived_2();
p1->a(); //this class has reimplemented a(), it calls do_something()
p2->a(); //this class doesn't reimplemment a(), it does nothing.
{
class
【在 r******l 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 你这个大概跟我要的相反。我要的是当a被redefine的时候才执行do_something,你这
: 个是当a没被redefine的时候执行。我说的base class里面的a就是virtual void a() {
: return; }而已。但是如果用户在derived class里面redefine了a的话,则base class
: 就要执行do_something。
class base{
public:
virtual void a()
{
//do nothing
}
protected:
void do_something()
{
//do something here
}
};
class derived : public base{
public:
virtual void a()
{
base::do_something();
}
};
我估计一般的情况是base pointer to derived class.
suppose there's another derived class.
class derived_2:public base{
// doesn't implement a()
};
base * p1 = new derived();
base * p2 = new derived_2();
p1->a(); //this class has reimplemented a(), it calls do_something()
p2->a(); //this class doesn't reimplemment a(), it does nothing.
{
class
【在 r******l 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 你这个大概跟我要的相反。我要的是当a被redefine的时候才执行do_something,你这
: 个是当a没被redefine的时候执行。我说的base class里面的a就是virtual void a() {
: return; }而已。但是如果用户在derived class里面redefine了a的话,则base class
: 就要执行do_something。
q*0
28 楼
Will this resolve your problem? A_ex() is the your new interface provided to
library user.
class Base
{
virtual void A(); //virtual
void A_ex(); // non-virtual
}
void Base::A()
{
//do nothing
}
void Base::A_ex()
{
A();
}
class Derived
{
virtual void A();
}
void Derived::A()
{
//do something specific to Derived
}
library user.
class Base
{
virtual void A(); //virtual
void A_ex(); // non-virtual
}
void Base::A()
{
//do nothing
}
void Base::A_ex()
{
A();
}
class Derived
{
virtual void A();
}
void Derived::A()
{
//do something specific to Derived
}
b*o
29 楼
search for [reflection in c++]:
http://www.garret.ru/cppreflection/docs/reflect.html
【在 r******l 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: (CS版人气太差,发到这里请教一下各位高手)
: 如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
: 下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
: 否被重载呢?
http://www.garret.ru/cppreflection/docs/reflect.html
【在 r******l 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: (CS版人气太差,发到这里请教一下各位高手)
: 如果一个虚函数被用户重载了,我就做一些很费时间的事。但是这个虚函数大部分情况
: 下不会被用户重载,也就是说大部分用户不会用到这个函数。能否有方法检测该函数是
: 否被重载呢?
相关阅读
有没有人会担心给的包裹超出自己的能力太多拿了一家offer还有一周正式上班,又来了第二家更合适的Offer,请教如果公司给performance improve planbackground check 问题面试问到现在工资firmware 面大公司也需要刷题库么?能给连接么?Micron怎么样好公司好工作的特征是善良和成长一份合适的工作有多难找!求ServiceNow Refer公司主页上那种一二十项的要求,你都能满足吗?分享一个图钉面筋公司保密协议和noncompete的问题求助H1b transfer期间出境的问题,急!在线等对于ICC,打击不成,也要利用最近面试体会内部推荐BigData工作机会美国的Contract job 和 permanent job究竟差在什么地方还是问transfer,还有批准之前出境的问题想建立一些学习小组,各位给看看呗