C++编程思想笔记(0011)。。。

1,"声明”向计算机介绍名字,它说,“这个名字是什么意思”。而“定义”为这个名字分配存储空间。无论涉及到变量时还是函数时含义都一样。无论在哪种情况下,编译器都在“定义”处分配存储空间。对于变量,编译器确定这个变量占多少存储单元,并在内存中产生存放它们的空间。对于函数,编译器产生代码,并为之分配存储空间。函数的存储空间中有一个由使用不带参数表或带地址操作符的函数名产生的指针。

 

2,一个结构的大小是它的所有成员大小的和。有时,当一个struct 被编译器处理时,会增加额外的字节以使得捆绑更整齐,这主要是为了提高执行效率

 

3,用s i z e o f运算可以确定struct 的长度。在该语言较早的版本中,这个长度是零,但是,当创建这样的对象时出现了笨拙的情况:它们与紧跟着它们创建的对象有相同的地址,没有区别。这样,无数据成员的结构总应当有最小的非零长度

 

4,为了恰当地组织代码和写有效的头文件,有一些问题必须知道。第一个问题是将什么放进头文件中。基本规则是“只声明”,也就是说,对于编译器只需要一些信息以产生代码或创建变量分配内存。这是因为,在一个项目中,头文件也许会包含在几个处理单元中,而如果内存分配不止一个地方,则连接器会产生多重定义错误。于头文件的第二个问题是重复声明。C 和C++ 都允许对函数重复声明,只要这些重复声明匹配,但决不允许对结构重复声明。在C++ 中,这个规则特别重要,因为,如果编译器允许对结构重复声明而且这两个重复声明又不一样,那么应当使用哪一个呢?

 

5,用C++ 建立项目时,我们通常要汇集大量不同的类型(带有相关函数的数据结构)。一般将每个类型或一组相关类型放在一个单独的头文件中,然后在一个处理单元中定义这个类型的函数。当使用这个类型时必须包含这个头文件,形成适当的声明。

 

6,存取指定符是s t r u c t的一部分,它并不影响从这个s t r u c t产生的对象,程序开始运行时,所有的存取指定信息都消失了。存取指定信息通常是在编译期间消失的。在程序运行期间,对象变成了一个存储区域,别无他物,因此,如果有人真的想破坏这些规则并且直接存取内存中的数据,就如在C中所做的那样,那么C + +并不能防止他做这种不明智的事,它只是提供给人们一个更容易、更方便的方法。

 

7,存取控制的真正价值体现在开发阶段,防止越界。事实上,只有编译器知道类成员的保护级别,并没有将此类的信息传递给连接器。所有的存取保护检查都是由编译器来完成的,在运行期间不再检查。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值