代码示例 1 #include 2 using namespace std; 3 class A 4 { 5 public: 6 A(int x){ i = x; cout << "构造函数执行!" << i << endl; } 7 ~A(){ cout << "析构函数执行!"...
分类:
其他好文 时间:
2015-08-05 18:16:41
阅读次数:
141
最近在VS上开发C++程序时遇到了这个错误:
Debug Assertion Failed! Expression:_pFirstBlock == pHead
如图:
点击Abort之后,查看调用栈,发现异常在函数return时被时产生,进一步看是vector的析构函数被调用时产生,以前没开发过C++项目,没什么经验,这个错误让我很困惑,第一,我电脑上并没有f盘;第二,我并没有调...
分类:
其他好文 时间:
2015-08-05 14:54:08
阅读次数:
161
第 9 章 类的构造函数、析构函数与赋值函数
1.构造函数初始化表的使用规则:
1)如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数。
2)类的 const 常量只能在初始化表里被初始化,因为它不能在函数体内用赋值的方式来初始化。
3)类的数据成员的初始化可以采用初始化表或函数体内赋值两种方式,这两种方式的效率不完全相同。
2. 类 String 的构造函数与析构函数
...
分类:
编程语言 时间:
2015-08-04 22:54:24
阅读次数:
165
struct dulnode{ int val; dulnode *pre; dulnode *next;};//这里创建的不是双循环链表dulnode* create_dulnode(int n){ if (n val = rand() % RAND_MAX; hea...
分类:
编程语言 时间:
2015-08-04 22:44:47
阅读次数:
138
当定义一个新类型的时候,需要显式或隐式地指定复制、赋值和撤销该类型的对象时会发生什么——这是通过定义特殊成员:复制构造函数、赋值操作符和析构函数来达到的。如果没有显式定义复制构造函数或赋值操作符,编译器(通常)会为我们定义。
复制构造函数是一种特殊构造函数, 具有单个形参, 该形参 (常用 const & 修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将...
分类:
其他好文 时间:
2015-08-04 17:22:44
阅读次数:
96
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动...
分类:
编程语言 时间:
2015-08-03 16:27:58
阅读次数:
219
c++对象生命周期
#include
#include
#include
using namespace std;
class WithCC {
public:
WithCC() {printf("执行WithCC构造函数!\n");}
~WithCC() {printf("执行WithCC析构函数!\n");}
};
class WithCC_new {
public:
WithCC_new() {print...
分类:
编程语言 时间:
2015-08-02 23:29:34
阅读次数:
141
通过引用可以大大减少创建临时变量的次数,从而提高程序运行的效率。
本文探讨创建通过引用减少创建临时变量的次数,与临时变量的生命周期。
测试一:不使用引用。#include
#include
using namespace std;
class Point{
private:
static int count;
int x;
public:
Point() {
x ...
分类:
其他好文 时间:
2015-07-31 13:02:35
阅读次数:
116