c++编程思想
来源:互联网 发布:mac装不了软件说版本低 编辑:程序博客网 时间:2024/06/06 15:38
转自:http://www.cnblogs.com/lanxuezaipiao/p/4135105.html
C和C++指针的最重要的区别在于:C++是一种类型要求更强的语言。就void 而言,这一点表现得更加突出。C虽然不允许随便地把一个类型的指针指派给另一个类型,但允许通过void 来实现。例如:
bird* b;
rock* r;
void* v;
v = r;
b = v;
C++不允许这样做,其编译器将会给出一个出错信息。如果真的想这样做,必须显式地使用映射,通知编译器和读者。
参数传递准则
当给函数传递参数时,人们习惯上应该是通过常量引用来传递,这种简单习惯可以大大提高效率:传值方式需要调用构造函数和析构函数,然而如果不想改变参数,则可通过常量引用传递,它仅需要将地址压栈。 事实上,只有一种情况不适合用传递地址方式,这就是当传值是唯一安全的途径,否则将会破坏对象(而不是修改外部对象,这不是调用者通常期望的)。
C++访问权限控制:public、private、protected
其中protected只有在继承中才有不同含义,否则与private相同,也就是说两者只有一点不同:继承的结构可以访问protected成员,但不能访问private成员。
前置声明注意
struct X; // Declaration(incomplete type spec)
struct Y
{
void f(X *memx);
void g(X memx); // not allowed, the size of X is unknown.
};
这里f(X*)引用了一个X对象的地址,这是没有任何问题的,但如果是void g(X memx);就不行了,编译器会报错。这一点很关键,因为编译器知道如何传递一个地址,这一地址大小是一定的,而不用管被传递的对象类型大小。如果试图传递整个对象,编译器就必须知道X的全部定义以确定它的大小以及如何传递它,这就使程序员无法声明一个类似于Y :: g(X) 的函数。
C++是纯的吗?
如果某个类的一个函数被声明为friend,就意味着它不是这个类的成员函数,但却可以修改类的私有成员, 而且它必须被列在类的定义中,因此我们可以认为它是一个特权函数。这种类的定义提供了有关权限的信息,我们可以知道哪些函数可以改变类的私有部分。 因此,C++不是完全的面向对象语言,它只是一个混合产品。friend关键字就是用来解决部分的突发问题。它也说明了这种语言是不纯的。毕竟C + +语言的设计是为了实用,而不是追求理想的抽象。
C++输入输出流的操纵算子(manipulator)有:endl、flush、ws、hex等。
cout<
- C++编程思想读书笔记--C++中的C
- Arm设计思想与高效C编程
- Arm设计思想与高效C编程
- ARM设计思想与高效C编程
- Arm设计思想与高效C编程
- C ++ 编程思想(卷一) 笔记
- C ++ 编程思想(卷二) 笔记
- ARM设计思想与高效C编程
- C ++ 编程思想(卷一) 笔记
- C ++ 编程思想(卷二) 笔记
- C++,高性能服务器,高级编程思想
- ARM设计思想与高效C编程
- C语言模块化编程的思想
- ARM设计思想与高效C编程
- 模块化编程思想及(C++)实践
- JAVA编程思想:附录C Java编程规则
- 编程思想
- 编程思想
- 2017.7.5细碎知识点整理
- 【java框架】Dubbo分布式框架入门
- 编译AOSP刷入nexus5
- 机器人技术(6)AtdRobot语音控制教程
- 批量微信过滤开通助手 急速微信筛选开通助手
- c++编程思想
- Ubuntu apt 命令随笔
- [bzoj2557][Poi2011]Programming Contest 二分图最大匹配
- java保留两位小数及getBytes用法
- react-redux学习笔记-1-react
- 星星评论
- MongoDB常用命令汇总之数据库常用命令。
- sort函数的第三个参数cmp
- Leetcode 94 Binary Tree Inorder Traversal