C++的一些基本用法

这篇博客可能不是像通常的编程书籍一样,从“hello world”进行一个可视化的一个例程,主要就是对一些C++的特性,包括关键字的一些理解,也是用到一个整理一个,所以逻辑性和连贯性可能不是很好,纯粹作为C++的一个知识积累,如果当中有不正确的地方,还请批评指正!

1.typedef

关键字typedef能够创建类型的别名

typedef double real; //make real another number for double

也可以作为函数指针的别名

typedef const double *(*p_fun)(const double *, int); //p_fun now a type name

2.union

1、什么是联合?

“联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,已达到节省空间的目的(还有一个节省空间的类型:位域)。 这是一个非常特殊的地方,也是联合的特征。另外,同struct一样,联合默认访问权限也是公有的,并且,也具有成员函数。

2、联合与结构的区别?

“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和(空结构除外,同时不考虑边界调整)。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。

3.inline

C++的内联函数,主要是C++为提高运行速度所做的一项改进,通常普通的函数在程序调用的时候,是像阅读注脚一样,从正文中跳到这一页的末端,然后再回到正文。内联函数相当于在正文中直接划出一部分区域作为注释,那么在阅读文章时也就不需要跳来跳去,但是也会存在一个问题,如果同一个注释(内联函数)需要使用10遍,那么就要在在正文中划出10个对应的空间给它,速度虽然有所提升,但是是以内存开销的增加作为代价的,所以一般内联函数的定义不宜过长。

要使用这项特性,要采取下列措施之一:

在函数声明前加上关键字inline;
在函数定义前加上关键字inline;

通常做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供函数原型的地方。

3.class

类声明类似结构声明,可以包括数据成员和函数成员。声明私有部分,在其中声明的成员只能通过成员函数进行访问;声明还具有共有部分,在其中声明的成员可被使用类对象的程序直接访问。通常,数据成员放在私有部分,成员函数放在公有部分中,因此,典型的类声明格式如下:

class className
{
private:
    data_member declarations
public:
    member function prototypes
};

4.头文件管理

在同一个文件中只能将同一个头文件包含一次,记住这个规则很容易,但很可能在不知情的情况下将头文件包含多次。例如,可能使用包含了另外一个头文件的头文件。有一种C++技术可以避免多次包含同一个头文件、它是基于预处理器编译指令#ifndef(即if not defined)的。下面的代码片段意味着仅当以前没有使用预处理器编译指令#define定义名称COORDIN_H_时,才处理#ifndef和#endif之间的语句:

#ifndef COORDIN_H_
#define COORDIN_H_
...//something you want to do
#endif

5.strcpy
函数原型为:

 char *strcpy(char *dest,const char *src)

头文件:

 #include<string.h>/#include <cstring>

功能是: 从src地址开始且含有null结束符的字符串复制到以dest地址开始的字符串中,并返回指向dest的指针。通俗的讲就是将 src字符数组复制到dest数组中,如果dest数组本身有数据,会把src里的数据全部复制到dest中,如果dest中有数据小于src地址长度的将会被覆盖,而大于src长度的将保留
说明:dest的地址长度要足够大,不然会产生溢出。Dest的内存长度要大于等于src的内存长度。

6.size_t

typedef long unsigned int  size_t

size_t的类型也就是long unsigned int类型。之前在应用的时候并没有很注意这些的使用,但是在实际应用时,为了实际的效率和提高内存应用,才特别注意使用这些,所以还是要了解这几种类型的具体的位的长度。

未完待续。。。

参考地址:
https://zhidao.baidu.com/question/410394259.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值