C++
代码痴汉
这个作者很懒,什么都没留下…
展开
-
c++中虚析构函数的使用
基类中如果定义了虚函数,则基类中析构函数也应该声明为虚函数,这样在派生类中才能正常的构造与析构,对内存的回收才准确:构造基类------>构造子类------>析构子类------>析构基类看下面这个程序(调用类B的成员函数get()),用来查看程序执行过程:#include using namespace std;基类A成员函数中只有get()声明为虚函数clas原创 2013-11-28 16:28:51 · 768 阅读 · 0 评论 -
C++的虚基类,抽象类,虚函数,纯虚函数,virtual
虚基类在说明其作用前先看一段代码class A{public:int iValue;};class B:public A{public:void bPrintf(){cout};class C:public A{public:void cPrintf(){cout};class D:public B,public转载 2014-03-18 23:27:25 · 917 阅读 · 0 评论 -
float和double类型数据做比较问题
因为float和double类型的数据有数据精度,因此直接用“==”或者“!=”做比较会出现很多的问题,这类比较一般都使用宏定义一个数据精度,在精度允许误差范围内则认为两个数相等。以最常见的问题做分析:float a 与0作比较程序:我们经常不这样写代码 if(a == 0.0){printf("a equal 0");}而是这样写#define EPSINON原创 2014-03-10 22:36:00 · 1942 阅读 · 0 评论 -
sizeof和strlen区别和联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所转载 2014-03-10 21:14:31 · 742 阅读 · 0 评论 -
c++中的类模板
类模板和类的概念类似之处,类是把具体对象(具有相同的属性)抽象化,类模板是把数据类型抽象化。这样使用类模板,我们就不必因为数据类型的微小变化而每次都定义不同的类,避免了类的重复设计。class A class B { {public: public:void setval (int x)void setval (double x){; {val = x原创 2014-01-08 23:26:07 · 788 阅读 · 0 评论 -
C++中构造函数前面的explicit关键字
explicit 只对构造函数起作用,用来抑制隐式转换。按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello转载 2014-01-07 23:45:30 · 871 阅读 · 0 评论 -
C++中结构体中的析构函数和构造函数
在C++中除了类中可以有构造函数和析构函数外,结构体中也可以包含构造函数和析构函数,这是因为结构体和类基本雷同,唯一区别是,类中成员变量默认为私有,而结构体中则为公有。注意,C++中的结构体是可以有析构函数和构造函数,而C则不允许。至于联合体,它是不可能有析构函数和构造函数的。本质上,它是一种内存覆盖技术的体现,也就是说,同一块内存在不同的时刻存储不同的值(可能是不同类型的)。例子原创 2014-01-07 00:04:04 · 25571 阅读 · 0 评论 -
VS和VAX快捷键
引子1:当你复制了一大段代码,并想将它们复制到一个空白行的时候,一不小心按下了Ctrl+C,将你之前复制的内容全部都丢失了。你需要重新找到之前复制代码的位置重新进行复制,或者其他什么办法来找回丢失的剪贴板内容。解决方法:技巧1:避免复制空白行 在工具(Tools)- 选项(Options)- 文本编辑器(Text Editor)- 所有语言(All Language)- 常规(原创 2014-01-06 23:18:36 · 2791 阅读 · 0 评论 -
c++中namespace的使用
namespace是c++中的名字空间,主要是在项目开发中,代码量很大,每个人定义的变量或者函数有可能发生同名冲突,为了解决这个问题,将每个人同名的变量放在每个人自己的名字空间,而与全局的空间隔开,本质是对全局变量的细分。使用方式:1.声明格式如下namespace 空间名 {};例如,c++标准名字空间std,其实原型如下namespace std {常量;变量;原创 2014-01-05 08:13:22 · 917 阅读 · 0 评论 -
c++中类成员和类继承关键字private,public,protected
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由转载 2014-01-03 22:12:56 · 2274 阅读 · 0 评论 -
关于预编译条件(#ifndef......#define......#endif)的使用
#ifndef......#define......#endif 主要目的是防止头文件的重复包含和编译--------------------------------------------------------------------------------------------------用法:.h文件,如下:#ifndef XX_H#define XX_H原创 2013-11-30 22:46:24 · 1549 阅读 · 0 评论 -
assert用法
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#i转载 2014-03-25 22:52:55 · 697 阅读 · 0 评论