摘要:
1、什么是宏,它解决什么问题? 宏的本质是文本替换,考虑下面的需求,程序中多次使用圆周率Pi,在每个地方都使用3.1415,显然很愚蠢。有没有好的办法呢?使用宏,如下: #definePi 3.1415 这样,编译器在程序中遇到Pi,就使用3.1415来进行文本替换。2、特殊字符 考虑下面的需求,程序中多处使用文本字符串。我们知道文本字符串前后都要加上双引号,我很讨厌输入双引号。有没有好的办法呢?根据常识,使用下面的宏: #define Str(x) "x" String s = Str(Hello); 期望预编译为:String s = "Hello" 阅读全文
posted @ 2014-01-02 21:53
Andy Niu
阅读(2134)
评论(0)
推荐(0)
摘要:
1、public继承表示Is-A关系,也就是满足里氏代换。与之相对应的,private继承表示根据某物实现出,不满足里氏代换。子类对象初始化父类引用,编译通不过。2、考虑下面的需求,企鹅继承鸟,Bird暴露virtual Fly接口。现在出问题了,因为Penguin不会飞,不提供Fly接口。怎么办? a、Penguin在重写的Fly方法中,抛出一个异常。 b、上面的解决办法不好,因为它表示的意义不是说Penguin不会飞,而是说尝试让Penguin飞,会出现错误。最大的问题是:运行期才发现错误。我们知道:好的接口可以防止无效的代码通过编译。现在思考,解决解决这个问题。这个问题的关键是:并不.. 阅读全文
posted @ 2014-01-02 21:02
Andy Niu
阅读(383)
评论(0)
推荐(0)
浙公网安备 33010602011771号