代码和解释:
#include "stdafx.h"
#include
#include
#include
using namespace std;
class test{
int *p;
public:
test(int value){
p = new int(value);
cout>"<<endl;
cout<<"p的地址为"<<&p<<";p的值为"<<p <<" ...
分类:
编程语言 时间:
2014-09-03 22:46:37
阅读次数:
203
前言 标题一看似乎是非常直观简单,没必要特别写下一篇随便记录。 然而,在实际开发中,你会发现做到这一点对于经验不足的 C++ 程序员来说绝对是一个挑战。 要做到复制每一个成分,就一定小心下面说到的两点。第一点:类中新增了成员变量之后,需要在自定义的构造函数,析构函数,赋值运算符重载函数,拷贝构...
分类:
其他好文 时间:
2014-08-30 17:41:39
阅读次数:
222
前言 如果系统自动生成的赋值运算符重载函数不合乎你的要求,那么就应当定制自己的赋值运算符。 然而,定制赋值运算符有两点是非常值得注意的,本文将讲解这两点,让你写出更优质的 =运算符。第一点:请返回 reference to *this 我们经常使用如 "a=b=c=1" 这种形式的连锁赋值语句...
分类:
其他好文 时间:
2014-08-30 16:17:29
阅读次数:
209
++i 快一些,但对int这种内置类型影响不大 看看C++的++运算符重载那章,会明白的 前置++?返回当前对象的引用,返回的只是一个地址,很快 后置++?返回一个原对象的备份,要调用二次拷贝构造函数和二次析构函数,即使使...
分类:
其他好文 时间:
2014-08-29 18:37:58
阅读次数:
222
当一个函数不属于某个具体的实例而属于整个类,那么这个函数最好写成静态成员函数,这样就可以直接用类名调用Class::Func()对于一般成员函数当用obj.Func()调用函数时,编译器会将其编译成TypeOf(obj)::Func()的样式,所以静态成员函数不能这么调用友元函数和静态成员函数都不属...
分类:
编程语言 时间:
2014-08-29 17:50:38
阅读次数:
306
前言 如果你不想要编译器帮你自动生成的拷贝机制 (参考前文),那么你应当明确的拒绝。 如何拒绝?这便是本文要解决的主要问题。问题描述 当你定义了一个类,而这个类中各对象之间也是封装的 - 禁止同类对象之间的相互赋值以及复制,那么你需要屏蔽掉编译器帮你生成的拷贝构造函数以及赋值运算符。 在许多...
分类:
其他好文 时间:
2014-08-28 22:31:06
阅读次数:
264
简单DP题。可以用运算符重载来写,简单一些。#include #include #include #include using namespace std;class STRS{public: char str[100]; void operator=(STRS b){ strcpy(str,b.....
分类:
其他好文 时间:
2014-08-23 12:31:20
阅读次数:
235
用法上的基本区别(包括sizeof和typeid)就不多说了,相信大家都了然于心,不清楚随便google一下也有一大堆。下面从对象模型的角度去深入的谈谈指针和引用的区别,亦我们有了指针,为什么还要用引用。1) 形式 这里所说的形式指的是运算符重载时的形式一致,事实上,在c++中,只有运算符有形式上....
分类:
其他好文 时间:
2014-08-20 13:52:12
阅读次数:
153
这里是C和C++语言的运算符列表。所有列出的运算符皆含纳于C++;第三个栏目里的内容也使用C来描述。应当注意的是C不支持运算符重载。下列运算符在两个语言中都是顺序点(运算符未重载时):&&、||、?:和,(逗号运算符)。C++也包含类型转换运算符const_cast、static_cast、dyna...
分类:
编程语言 时间:
2014-08-19 23:53:05
阅读次数:
375