![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 91
Live_Today
专研嵌入式。。
展开
-
引用参数与引用返回值,临时对象
经常看到这样的声明:T& func(T& t),这种声明和T func(T t)有什么区别?书上的解释是为了提高效率,究竟是如何提高效率的呢?内部执行了什么操作?本文通过8个小例子对引用参数和引用返回进行了一次彻底的排查。 首先看一下在类的成员函数中的引用参数和引用返回值:类定义class A{ public: int x; A(){}//转载 2014-07-03 14:09:26 · 530 阅读 · 0 评论 -
C++ list 的使用
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不转载 2014-08-08 16:16:10 · 681 阅读 · 0 评论 -
Linux和windows下sleep的使用
功 能: 执行挂起一段时间用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include 在gcc中,使用的头文件因gcc版本的不同而不同一般来说,linux系统需要添加的头文件为: #include 在VC中Sleep中的第一个英文字符为大写的"S",在标准C中是转载 2014-08-06 15:02:07 · 1390 阅读 · 0 评论 -
C++静态成员变量和静态成员函数
数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以转载 2014-08-07 15:51:58 · 368 阅读 · 0 评论 -
“using namespace std ” 使用
对于一个存在着标准输入输出的C++控制台程序,一般会在#include 的下一行发现一句话,using namespace std。这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义。其作用就在于避免发生重命名的问题。 1. 关于namespace C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现象。解决方法转载 2014-06-20 11:10:51 · 505 阅读 · 0 评论 -
友元函数、友元类、访问私有数据成员、友元关系
友元函数(friend function)1. 什么是友元函数? 一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员2. 友元函数的用处体现在哪里? 2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类 2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的转载 2014-07-10 17:07:09 · 676 阅读 · 0 评论 -
C++ enum用法
1、为什么要用enum 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。 更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即: const int input = 1;转载 2014-07-10 16:24:48 · 410 阅读 · 0 评论 -
C++中的抽象类以及接口的区别联系
一 抽象类和接口抽象类: 抽象类是特殊的类,只是不能被实例化(将定义了纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。虽然不能定义抽象类的实转载 2014-07-07 16:38:49 · 568 阅读 · 0 评论 -
C++抽象类的概念
一、定义.纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔转载 2014-07-07 16:46:10 · 1137 阅读 · 0 评论 -
在C++中定义常量
如何在c++中定义常量: 不能在类中初始化const数据成员,因为在类没有被初始化的时候,成员是不存在的。const成员只在某个对象的生存周期中存在的,不同的对象中const成员变量的值不一样。[cpp] view plaincopyclass Const { const int SIZE = 100;转载 2014-07-24 16:21:29 · 732 阅读 · 0 评论 -
C++ static、const和static const 以及它们的初始化
const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 在c++中,static静态成员变量不能在类内部初始化。转载 2014-07-25 16:47:37 · 387 阅读 · 0 评论 -
C++中的this 指针的使用
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; } 1. this只能在成员函数中使用。全局函数,静态函数都转载 2014-07-25 09:01:48 · 472 阅读 · 0 评论 -
C++string 类型结尾是否以'\0'结尾
今天在带大一学生C++上机时,涉及到一个string类型的字符串是否以\0结尾的问题,本来我很坚定string类型结尾并没有\0,C风格的字符数组才会那样。但是程序运行结果却说明string类型的字符串后面确实有\0。于是回实验室后自己又实验了下,才发现这和编译器有关,真坑爹。对于如下一段测试程序,在C-free 5.0和g++ 4.1上输出yes,而在VS2010上执转载 2014-08-11 10:02:34 · 2379 阅读 · 0 评论