C/CPP
lishuhuakai
这个作者很懒,什么都没留下…
展开
-
如何使用指向类的成员函数的指针(详解!)
我们首先复习一下"指向函数的指针"如何使用? void print() { } void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void pfun = print; //赋值一个指向函数的指针 (*pfun)(); //使用一个指向函数的指针 比较简单,不是吗?为什么*pfun 需要用()扩起来呢?原创 2014-01-14 22:13:22 · 32946 阅读 · 7 评论 -
C++中的引用
C++中的引用标签: c++1. 变量名回顾 + 变量名实质上是一段连续存储空间的别名,是一个标号 + 程序中通过变量来申请并命名内存空间 + 通过变量的名字可以使用存储空间2. c++的引用 引用是C++的概念,属于C++编译器对C的扩展。int main(){ int a = 0; int &b = a; //int * const b = &a转载 2015-05-19 23:39:36 · 759 阅读 · 0 评论 -
c++对于c的加强
c++对于c的加强标签: c c++1. 函数检测增强 在C语言中,重复定义多个同名的全局变量是合法的,在C++中,不允许定义多个同名的全局变量。 C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上。 下面的代码在c中完全合法:#include <stdlib.h>#include <stdio.h>int g_var;int g_var = 1;vo原创 2015-05-19 23:41:49 · 890 阅读 · 0 评论 -
c++运算符重载练习
//全局函数和静态函数的转换#include using namespace std;class Test{public: Test(int a = 0, int b = 0) { this->a = a; this->b = b; }public: int a; int b;public: //全局函数 Test T_add(Test &t1, Test &原创 2015-05-23 00:25:50 · 2203 阅读 · 0 评论 -
继承练习
类的属性l 用public修饰的成员函数和属性能在类的内部和类的外部使用l 用private修饰的成员函数和属性能在类的内部使用,但不能在类的外部使用l 用protect修饰的成员函数和属性能在类的内部使用,但不能在类的外部使用我们可以做一个比较,开放性public > protect> private。原创 2015-05-23 12:16:16 · 709 阅读 · 0 评论 -
new和delete练习
new和delete的使用:#include using namespace std;void Demo01(){ int *p = new int(10); //new一个内存,顺便赋值成10 *p = 10; //*p = 1; delete p; system("pause");}void Demo02(){//分配数组 int *p = new int[10];原创 2015-05-23 00:32:18 · 854 阅读 · 0 评论 -
C++面向对象模型初探
C++中的class从面向对象理论出发,将变量(属性)和函数(方法)集中定义在一起,用于描述现实世界中的类。从计算机的角度,程序依然由数据段和代码段构成。C++编译器如何完成面向对象理论到计算机程序的转化?换句话:C++编译器是如何管理类、对象、类和对象之间的关系?具体的说:具体对象调用类写的方法,那,c++编译器是如何区分,是那个具体的类,调用这个方法呢?我们先看下面一段代码:转载 2015-05-23 00:32:41 · 1183 阅读 · 1 评论 -
extern关键字的一般用法
extern关键字会提升变量或者函数的逼格,使得它们可以跨文件被访问。话虽然是这么说,使用这个关键字必须要注意一些东西。首先,你得在cpp文件里面实现这些全局变量和全局函数,这是最基本的,然后只需要在需要用到这些变量和函数的文件里声明一下,用extern修饰声明,这样弄完之后就可以随意使用这些全局变量和全局函数了。请不要为编译器担心,担心它们找不到这些东西,只要你实现了,不怕编译器找不到。...原创 2015-05-24 03:02:04 · 39684 阅读 · 7 评论 -
C++的构造函数
C++的构造函数tags: c++构造函数构造函数是用于创建对象的特殊成员函数, 当创建对象时,系统自动调用构造函数构造函数的作用是: * 为对象分配空间;对数据成员赋初值;请求其他资源 * 没有用户定义的构造函数时,系统提供缺省版本的构造函数构造函数名与类名相同:类名 构造函数可以重载,构造函数可以有任意类型的参数,但没有返回类型。析构函数析构函数是用于取消对象的成员函数,当一个对象作用转载 2015-05-21 14:26:25 · 790 阅读 · 0 评论 -
inline, 默认参数,函数占位符,函数重载
inline专题C++中的const常量可以替代宏常数定义,如:const int A = 3;#define A 3C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!) C++中推荐使用内联函数替代宏代码片段,C++中使用inline关键字声明内联函数。需要注意的是: 内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。#inc转载 2015-05-20 22:38:15 · 1480 阅读 · 0 评论 -
关于rand和srand函数使用的一点心得
在c语言里面,两个函数包含在头文件里面,c++里面,标准库(被包含于中). srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); rand函数用来产生随机数,当然是伪随机数。 原型:int rand(void) seed的作用:srand函数的作用是根据参数seed,设置原创 2013-05-23 14:07:12 · 25939 阅读 · 2 评论 -
C++中关于set的自定义排序函数的书写
大概有两个月没用过C++啦,手都变得很生了,在这里,在这里我想扯一下关于set的比较函数的定义,我想,应该有不少人对这个东西感到头疼吧!如果说我想在set里面添加一个自定义的类型,比如说下面的结构体:struct Symbol{ char name[10];};我们如果要用set来盛放Symbol,我们应该怎么办么?set<Symbol> gSym;如果像上面这么来写的话,或许你的编译能原创 2016-05-14 09:07:20 · 16294 阅读 · 0 评论