C++语法
Alcoholsong
这个作者很懒,什么都没留下…
展开
-
const int* pt || int* const pt || const int* const pt 之间的区别
const int* pt || int* const pt || const int* const pt 之间的区别转自该链接1 从const int n 说起 const int n=20,有了const修饰的n 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。n是不能在它处重新赋新值了。 认识了const 作用之后,另外,我们还要知道格式转载 2015-03-28 20:39:05 · 545 阅读 · 0 评论 -
C/C++中static、const的区别
static 用途 1 static局部变量 表示该变量不是auto型的,就是说,该变量在程序开始的时候创建,在程序结束的时候存储空间不释放,使用的时候沿用上一次的那个值 2 static 全局变量 表示该变量只能在本文件中使用,不能被其他文件使用 3 static 函数 表示该函数只能在本文件中使用 不能被其他文件中的函数调用 4 static 类成员变量 表示这个类被全类拥有 该类的所有转载 2015-05-16 22:30:29 · 1094 阅读 · 0 评论 -
C++ 实现strcpy
不使用任何字符串库函数是实现strcpychar* _strcpy(char* dest, const char* src) { assert(dest != NULL && src != NULL); char* temp = dest; while (*src != '\0') { *dest = *src; dest++;原创 2015-05-06 19:17:19 · 1085 阅读 · 0 评论 -
C++ 公有(public)继承,私有(private)继承,保护(protected)继承
公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这转载 2015-05-06 16:36:55 · 816 阅读 · 0 评论 -
C++ 指针顺序
c++中while(*p++);与while(*p){p++;}有什么区别?区别在于退出循环后, p的值不一样while( *p++ ); //当*p=0时,退出循环,此时p++仍然执行了 while( *p ) p++; //当*p=0时,退出循环,此时p++不再被执行例如 char *p=”ABCD”; 执行完第一个while循环后,p指向的是’\0’后面的一个字节,*p的结果是未知的原创 2015-05-06 19:15:09 · 449 阅读 · 0 评论 -
C++ 实现strcmp
实现strcmp函数,不使用任何的字符串库#include <iostream>#include <cassert>#include <cstring>using namespace std;int _strcmp(const char* s1, const char* s2) { assert(s1 != NULL && s2 != NULL); while (*s1 !=原创 2015-05-06 17:28:26 · 3011 阅读 · 0 评论 -
C++ const 与 重载
重载函数的定义:出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数。根据教材定义,如果有两个名字相同的函数,二者形参名字和类型都相同,但一个函数的形参带 const 修饰,而另一个函数不带 const 修饰,那么这两个函数应该也是重载函数。就像下面这两个版本://// 版本 1 //int increase(int &val){ return ++val;转载 2015-05-06 17:00:42 · 417 阅读 · 0 评论 -
C++ i++ 与++i的优先级
直接上一段代码看一下吧#include <iostream>using namespace std;#define P(x) x*xint main() { int x = 2; cout << P(x++) << endl; // cout << x++ * x++ <<endl; cout << P(++x) << endl; // cout << ++x * ++x转载 2015-04-27 23:08:51 · 869 阅读 · 0 评论 -
C++中 #ifndef #define #endif的作用
加上以上的宏是未了防止头文件被重复引用,当编译器第一次编译头文件的时候,会定义_HEAD_H,然后如果还有文件引用了该头文件,但_HEAD_H已经被定义了,所以就不会在去编译你的头文件添加的内容。这就是条件编译。比如你有两个cpp文件,这两个cpp文件都include了同一个头文件。而编译时,这两个Cpp文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。例如:假设你的工程里面有4个文件,转载 2015-04-26 22:37:05 · 4368 阅读 · 1 评论 -
C++多态性
多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。(这里我觉得要补充,重写的话可以有两种,直接重写成员函数和重写虚函数,只有重写了虚函数的才能算作是体转载 2015-04-17 16:37:25 · 414 阅读 · 1 评论 -
防御式编程模式 - do while(0)模式的使用
转自: do - while(0)的妙用在C++中,有三种类型的循环语句:for, while, 和do…while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do…while相对不受重视。但是,最近在读我们项目的代码时,却发现了do…while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do…while(0)消除goto语句。通常,如果在转载 2015-04-24 23:35:41 · 364 阅读 · 0 评论 -
C++对象内存分配问题
转 C++将内存划分为三个逻辑区域:堆、栈和静态存储区。既然如此,我称位于它们之中的对象分别为堆对象,栈对象以及静态对象。先来看看栈。栈,一般用于存放局部变量或对象,如我们在函数定义中用类似下面语句声明的对象:Type stack_object ; stack_object便是一个栈对象,它的生命期是从定义点开始,当所在函数返回时,生命结束。另外,几乎所有的临时对象都是栈对象。比如,下面的函转载 2015-04-14 09:21:42 · 408 阅读 · 0 评论 -
C++ 运算重载
运算符重载是一种形式的C++多态。 运算符函数的函数格式如下: operator op(argument- list);(注意:op必须是有效的C++运算符,不能虚构一个新的符号)下面举一个重载“+”的例子class Time {private: int hours; int minutes;public: Time(); Time(int h,int原创 2015-04-13 16:45:24 · 359 阅读 · 0 评论 -
C++ 中const的使用
转载自该链接const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nValue; //nValue是c转载 2015-04-13 17:25:17 · 263 阅读 · 0 评论 -
C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
转自此篇点击打开链接1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:转载 2015-04-06 23:41:22 · 315 阅读 · 0 评论 -
C/C++中static的区别
static 用途 1 static局部变量 表示该变量不是auto型的,就是说,该变量在程序开始的时候创建,在程序结束的时候存储空间不释放,使用的时候沿用上一次的那个值 2 static 全局变量 表示该变量只能在本文件中使用,不能被其他文件使用 3 static 函数 表示该函数只能在本文件中使用 不能被其他文件中的函数调用 4 static 类成员变量 表示这个类被全类拥有 该类的所有转载 2015-05-16 22:49:42 · 388 阅读 · 0 评论