理解C++关键字
理解C++中的关键字,包括const、static、virtual、inline、friend等
007lizhen
这个作者很懒,什么都没留下…
展开
-
理解C++关键字(8)---inline内联函数
前面在总结const关键字时,曾提到:C++中几乎抛弃了宏定义,进而接受了const。对于在c语言中的宏定义关键字“#define”,确实存在着很多优势,并且在程序运行时充当了“替换”的工作。 我们知道,“#define”关键字,可以宏定义变量,也可以定义函数宏。比如#define MAX(A,B) A>B?A:B。在C++中,也提供了一个类似于函数宏的关键字“inline”。当然,它比...原创 2018-01-25 17:07:05 · 331 阅读 · 0 评论 -
理解C++关键字(7)---理解虚函数virtual
本文将介绍C++中虚函数的作用、特点及存储方式。1、虚函数的作用在介绍虚函数之前,需要了解一下早绑定(静态多态)和晚绑定(动态多态)的概念。1.1 静态多态早绑定,一般可通过模板实现。例如函数重载,对于同名的两个或多个函数,在编译阶段,编译器根据函数的形参个数及类型来决定调用哪个函数。观察下面的例子:#include<iostream>using na...原创 2018-01-24 17:04:10 · 453 阅读 · 0 评论 -
理解C++关键字(2)---static关键字
当我们在自己编写或阅读他人写的代码时,经常会遇到“static”关键字,本文将对“static”关键字涉及的知识点加以总结。1、static关键字的应用场景总体来说,主要应用于以下5个场景:面向过程:(1)声明静态局部变量 (2)声明静态全局变量 (3)声明静态函数 面向对象:(4)声明类的静态成员变量 (5)声明类的静态成员函数2、static关键字应原创 2018-01-18 20:07:09 · 214 阅读 · 0 评论 -
理解C++关键字(4)---cout和cin以及运算符重载
在用C++编写程序时,最常用的就是变量的输入输出了。在C++中,一般用cin和cout来实现变量的输入和输出。但是,cin和cout并不是C++内部定义的运算符,而分别是istream类和ostream类的对象。而且都位于std命名空间中。在类中实现cin和cout操作时,用到了运算符“那么由此以来我们自己也可以通过重载“>”来实现输入输出操作。定义MyOut类,在类中通过重载“原创 2018-01-19 16:51:30 · 3055 阅读 · 0 评论 -
理解C++关键字(3)---动态内存分配之 new和delete
本文将总结C++中的new和delete关键字,及其在动态内存分配的情形。1、问题引出对于常见的数组或一个数值变量,在C++中,他们都被存放于“栈区”。由于“栈区”的内存是系统自动分配的,在声明一个数组时,需要事先告诉数组的大小,申请以后,数组大小就固定了。这样,就给我们带来了很多不便,比如大数组只存放了少量的数据。new关键字就很好的解决了这个问题。由于new申请的内存是在“堆区原创 2018-01-19 11:37:55 · 365 阅读 · 0 评论 -
理解C++关键字(5)---理解const关键字
在《Effective c++》中,条款02指出:尽可能的使用const替换define;条款03指出:尽可能的使用const。可见,define在C++中不太受欢迎。本文将总结const的一般用法,并说明其和define两者的区别。1、const的一般用法与特点(1)将常见的数据类型约束为“不可被改动的对象”。例如一下语句:cont int a=5;将整型变量a声明为常量...原创 2018-01-21 15:01:21 · 264 阅读 · 0 评论 -
C++基础知识复习与总结(6)---友元friend、友元函数和友元类
为了在类之间进行数据共享时,提高效率,C++引入了友元的概念。友元主要有三个方面的应用:将普通函数声明为类的友元函数;将一个类声明为其他类的友元类;将一个类中的成员函数声明为其他类的友元函数。下面分别介绍。1、普通函数声明为友元函数将一个普通函数,声明为某个类的友元函数后(在函数声明前加上“friend”关键字),该函数就可以访问类中的任何成员。观察下面的代码:...原创 2018-01-22 14:56:05 · 404 阅读 · 0 评论 -
C++基础知识复习与总结(1)---C++内存管理
C++编译器将计算机内存分为代码区和数据区。数据区又分为静态数据区、动态数据区及常量区。如下图所示。 (1)栈区:由编译器自动分配释放,用于存放局部变量、函数参数等,随作用域退出而释放; (2)堆区:程序员分配并释放的区域,像malloc(c)、new(c++)以及free、delete,若程序员不释放,会造成内存泄露问题,导致后面一直无法访问这片区域。但程序退出后,系统会自动回收资源;原创 2018-01-18 12:07:57 · 340 阅读 · 0 评论