类的问题继承类的原因:为了添加或者替换功能。1.继承时重写类的方法v替换功能① 将所有方法都设置为virtual(虚函数),以防万一。Virtual:经验表明最好将所有方法都设置为virtual,包括析构函数但不包括构造函数;这样不必担心重写方法是否运行,这样做唯一的缺点是对性能具有轻微的影响;即使...
分类:
编程语言 时间:
2015-05-08 17:54:36
阅读次数:
131
建立一个向量类MyVector,声明如下,请完成类的定义
class MyVector //定义向量类
{
public:
MyVector(int m); //构造函数,共有m个元素的向量,元素值预置为0
MyVector(const MyVector &v); //复制构造函数
~MyVector(); //析构函数:释放动态数组所占用的存储...
分类:
其他好文 时间:
2015-05-08 15:03:01
阅读次数:
116
阅读下面的程序,领会其中用到的设计方案、技术手段与算法。
/*
对于要定义的字符串类CMyString,
数据成员包括:
- 字符串的长度;
- 指向字符串第一个字符的指针
成员函数包括:
- 不带参数的构造函数;
- 带一个类型为const char *类型的参数(用于对字符串初始化)的构造函数;
- 带一个const CMyString&类型的复制构造参数;
- 析构函数;
- Strlen...
分类:
其他好文 时间:
2015-05-08 14:58:29
阅读次数:
175
http://blog.chinaunix.net/uid-52437-id-2108747.html在一个函数内,申明一个局部类变量。则这个变量什么时候析构呢? 并不是在函数退出,释放栈空间时候析构消亡,而是在打括号终结时。(搞了这么多年c++,这点都没搞清楚,只能说明基础不扎实阿)。举例如下#i...
分类:
编程语言 时间:
2015-05-08 14:41:18
阅读次数:
159
C++类用三个特殊的成员函数:复制构造函数、赋值操作符和析构函数 来决定类对象之间的初始化或赋值时发生什么。所谓的“复制控制”即通过这三个成员函数控制对象复制的过程。本篇文章将介绍复制构造函数。复制构造函数复制构造函数是什么 复制构造函数首先是一个构造函数,它同所有其他的构造函数一样与类同名,没有返...
分类:
编程语言 时间:
2015-05-07 18:38:45
阅读次数:
189
场景:
1. C++类有构造和析构函数,析构函数是在类对象被delete时(或局部变量自动销毁时)调用来释放资源。
2. C++类对象指针很多情况下需要赋值给void*通用指针来达到传输对象的目的,但是往往这种void*指针就是造成内存泄漏或程序错误的根源,
这就是为什么C++存在泛型的目的,它也是为了在编译时刻消除这种对象不确定性,避免delete或使用时的错误.
好了,看代码,以下代码有什么问题?...
分类:
编程语言 时间:
2015-05-07 14:29:48
阅读次数:
132
在类中,有两个与众不同的成员函数,那就是构造函数和析构函数。当构造函数与析构函数遭遇继承和多态,它们的运行状况又会出现什么变化呢? 多态性是在父类或各子类中执行最合适成员函数。一般来说,只会选择父类...
分类:
编程语言 时间:
2015-05-06 08:03:37
阅读次数:
128
看如下代码:复制代码代码如下:#includeclass TestConstructor{public: TestConstructor() { std::cout<<"TestConstructor()"<<std::endl; } ~TestConstructor() { std::cout<<...
分类:
编程语言 时间:
2015-05-06 01:20:03
阅读次数:
166
C++中的new 和delete 是操作符,new 分配对象时候会自动调用构造函数,delete对象时候,会自动调用析构函数,而C语言中 malloc() 和 free() 是函数。 理论上malloc free 和 new 、delete 可以混搭用,但是最好不要这样用,也不能保证程序正确运行。 ...
分类:
编程语言 时间:
2015-05-05 19:15:50
阅读次数:
170
在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不过还好,我思索一下以后,发现这...
分类:
其他好文 时间:
2015-05-05 14:22:30
阅读次数:
112