
C/C++
文章平均质量分 77
luckysky
这个作者很懒,什么都没留下…
展开
-
贴几道C++测试题。
struct 2DPoint{ int x,y;};struct 3DPoint: 2DPoint{ int z;};int main(void){ 3DPoint 3dp={{0,1},2}; cerr}==============================#include class I1{public: virtual void func() { cerr }};c原创 2005-03-04 14:59:00 · 712 阅读 · 0 评论 -
解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1)原创 2005-03-04 14:53:00 · 660 阅读 · 0 评论 -
C++批评系列:函数重载
C++批评系列:函数重载Ian Joynercber译译者前言:要想彻底的掌握一种语言,不但需要知道它的长处有哪些,而且需要知道它的不足之处又有哪些。这样我们才能用好这门语言,避免踏入语言中的一些陷阱,更好地利用这门语言来为我们的工作所服务。Ian Joyner的这篇文章以及他所著的Objects Inencapsulated一书中,向我们充分的展示了C++的一些不足之处,我们应该充分借鉴于他已经原创 2005-03-04 15:20:00 · 946 阅读 · 0 评论 -
C++批评系列——多继承
多继承Ian Joynercber 译Eiffel和C++都提供了多继承的机制。但Java却没有,因为它认为多继承会导致许多问题的出现。不过Java提供了接口(interface)作为一种替换机制,它类似于Objective C中的协议(protocol)。Sun宣称接口可以提供多继承所能提供的所有特性。Sun所宣称的“多继承会带来许多的问题”这个观点是对的,尤其是在C++中用以实现多继承的方法更原创 2005-03-04 15:21:00 · 1274 阅读 · 0 评论 -
关于指针和内存的几个问题
一、"delete p" 会删去 "p" 指针,还是它指到的资料,"*p" ? 该指针指到的资料。"delete" 真正的意思是:「删去指针指到的东西」(delete the thing pointed to by)。同样的英文误用也发生在 C 语言的「释放」指标所指向的记忆体("free(p)"真正的意思是:"free_the_stuff_pointed_to_by(p)" )。二、能 "fr原创 2005-03-04 15:24:00 · 683 阅读 · 0 评论 -
"堆"和"栈"
堆(heap)和栈(stack)是C/C++编程不可避免会碰到的两个基本概念。首先,这两个概念都可以在讲数据结 构的书中找到,他们都是基本的数据结构,虽然栈更为简单一些。 在具体的C/C++编程框架中,这两个概念并不是并行的。对底层机器代码的研究可以揭示,栈是机器系统 提供的数据结构,而堆则是C/C++函数库提供的。 具体地说,现代计算机(串行执行机制),都直接在代码底层支持栈的数据结构。这体现在原创 2005-03-04 15:51:00 · 825 阅读 · 0 评论