retweet

关于C++类内const函数

据说有这种面试题: class A { public : char get_m() const { return m; } private: char m; } 请在函数get_m中改变m的值。 我想,对于这种流氓问题,只好使用流氓的做法: char get_m() const { char * p = (char *) &m; *p = 'C'; return m; } 呵呵,可以做到,因为类内const函数是通过“把类内成员都作为const”来实现的。 不过这是我这种“流氓程序员”的做法。 实际上,经过同事的教导,应该使用mutable修饰符: mutable char m; 这样即使在类的const函数内,m的类型也是可以改变的了。 另外,如果想不要这份工作,也可以这么写: #define const 哈哈,这样面试官就不敢要你啦。:D
--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢

本文地址: http://www.dulao5.com/cpp/2006/11/30/about-cpp-const-function.textile