编写类String 的构造函数、析构函数和赋值函数,已知类String 的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(v...
分类:
其他好文 时间:
2014-06-22 23:31:22
阅读次数:
212
单件模式:
单件模式即在整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享的。
单件模式的C++实现(构造函数、拷贝构造函数、赋值操作符均需重写):
#include
class CSingleton
{
private:
CSingleton()
{
std::cout<<"Singleton Constructed."<<std:...
分类:
编程语言 时间:
2014-06-10 18:22:16
阅读次数:
258
1.构造函数:
构造函数是一个特殊的、与类同名的成员函数,用于给每个成员设置适当的初始值。
构造函数不能有返回值,函数名为类名。
缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空。缺省构造函数是不带参数的。
创建一个对象时,系统自动调用构造函数。
总结:
1.构造函数可以重载...
分类:
编程语言 时间:
2014-06-10 14:27:33
阅读次数:
300
1.赋值运算符
先以赋值运算符引入后面要说的运算符重载,上一节说了构造函数、拷贝构造函数;一个类要想进行更好的控制,需要定义自己的构造函数、拷贝构造函数、析构函数、当然,还有赋值运算符。常说的三大函数就是指拷贝、赋值、析构。
如果一个类不定义自己的赋值运算符,会自己生成一个默认的赋值运算操作,这个默认的赋值运算满足一般类的需求。但是当类的功能、作用逐渐完善时,就...
分类:
编程语言 时间:
2014-06-10 10:50:06
阅读次数:
235
1: Java中浅拷贝和深拷贝的定义:
浅拷贝:就是指两个对象共同拥有同一个值,一个对象改变了该值,也会影响到另一个对象。
深拷贝:就是两个对象的值相等,但是互相独立。
(深拷贝才是真正的拷贝,浅拷贝只是将引用指向了同一份对象)
2:Java中几种常见的拷贝操作:
(1)“=”操作:也就是赋值操作;
(2)拷贝构造函数:拷贝构造函数就是构造函数的参数的类型是该构造...
分类:
编程语言 时间:
2014-06-04 22:54:51
阅读次数:
328
拷贝构造函数是用一个已存在的对象去构造一个不存在的对象(拷贝构造函数毕竟还是构造函数嘛),也就是初始化一个对象。而赋值运算符重载函数是用一个存在的对象去给另一个已存在并初始化过(即已经过构造函数的初始化了)的对象进行赋值。
它们定义上的区别,楼上的已经说过了。 比如:String s1("hell....
分类:
其他好文 时间:
2014-05-29 01:26:15
阅读次数:
278
拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量...
分类:
其他好文 时间:
2014-05-29 00:01:47
阅读次数:
378
oop示例,面向过程和面向对象的区别,常成员函数,C++设计一个字符串类String,拷贝构造函数(补充)
分类:
编程语言 时间:
2014-05-26 10:58:14
阅读次数:
236
条款05:了解C++默默编写并调用哪些函数
默认构造函数、拷贝构造函数、拷贝赋值函数、析构函数构成了一个类的脊梁,只有良好的处理这些函数的定义才能保证类的设计良好性。
当我们没有人为的定义上面的几个函数时,编译器会给我们构造默认的。
当成员变量里有const对象或引用类型时,编译器会不能合成默认的拷贝赋值函数;当一个基类把它的拷贝赋值函数定义为private时,它的派生类也不无生...
分类:
编程语言 时间:
2014-05-22 17:05:38
阅读次数:
341