随笔分类 - 类和指针
类和指针
摘要:1。当基类指针调用子类函数时候,缺省实参是由基类决定的。#include <iostream>using namespace std;class A{public: virtual void Fun(int number = 10) { std::cout << "A::Fun with number " << number<<endl; }};class B: public A{public: virtual void Fun(int number = 20) { std::cout << "B::Fu
阅读全文
posted @ 2012-02-25 23:24
RINA
摘要:关于拷贝(复制)构造函数为什么不能用值传递当你尝试着把拷贝构造函数写成值传递的时候,会发现编译都通不过,错误信息如下:error: invalid constructor; you probably meant 'S (const S&)' (大致意思是:无效的构造函数,你应该写成。。。)当编译错误的时候你就开始纠结了,为什么拷贝构造函数一定要使用引用传递呢,我上网查找了许多资料,大家的意思基本上都是说如果用值传递的话可能会产生死循环。编译器可能基于这样的原因不允许出现值传递的拷贝构造函数,也有可能是C++标准是这样规定的。如果真是产生死循环这个原因的话,应该是这样子的
阅读全文
posted @ 2012-02-23 15:43
RINA
摘要:OK,周末特别篇,今天我要记得是头文件的用处和多个人分开编写程序的某些部分,最后怎么把他们整合起来呢。第一点,如果A想编写一个自己的类,而B呢又想编写自己的模块,怎么办呢?首先A可以为自己弄个文件A.h,然后在这里把自己要写的写好,B呢也可以一样,最后在主文件里添加这两个头文件就可以用了,但是如果A和B想的一样呢,取了一样的类名,咋整呢?记住一点,一个程序里面,全局变量不能重复定义的,比如A定义了个C类,B也定义了一个C类。那如果在主文件里也要用C类的对象呢,编译器就晕了,是A的呢还是B的呢,所以啊,这里就要A和B自己代码里加上不同的命名空间,那样在定义对象的时候前面加上命名空间就可以。第二点
阅读全文
posted @ 2012-02-12 23:37
RINA
摘要:最近这几天学习了类的这个东西,不过都是单一的一个类操作,万一以后有多个类只是部分对象或者数据不同,那都要重新定义类,这样太麻烦了,因此有必要学习下派生类和基类这些个概念,方便类的进一步学习。所谓,派生,就是继承基类的方法,这样你要定义很多数据和方法,要是和基类的相同,你就不用重复定义啦,只需要引用基类的,再自己添加一下所需要的,这样就大大减少了代码量,清晰,快捷,方便。第一:首先在继承方式是public的情况下,我们对基类的成员是public还是private或者protect做出分析:当成员是public的时候,派生类对象可以直接调用基类的这个方法和数据,当数据是private的时候,派生类
阅读全文
posted @ 2012-02-12 01:23
RINA
摘要:好,在睡觉之前看到一个帖子,谈论了下指针和引用的区别,对于我这个C++新手来说,太有用了,于是,本着有多少吸收多少的大胃王原则,我决定把这个总结下。1.好,先简单写下自己的读后感,抛砖引玉。指针和引用相同点:1.都是对对象的间接使用,为啥是间接呢。首先指针指向对象的地址,并不是对象本身,而引用呢就是对象的另外一个名字,其实也一样的。2.关键啊,是这个不同点,先说引用吧,引用吧是对象的另外一个名字,所以没对象怎么可以呢,因为引用不能是空引用,而是要确定你要引用的对象是存在的。指针呢,这个好,因为是地址,就算对象不在,空地址都是可以指的,这就是两个的最大区别。另外,引用呢只能引用一个对象,你过一会
阅读全文
posted @ 2012-02-09 23:45
RINA
摘要:今天学习了下C++类的一些入门知识,总结下今天学到的,希望能够真正的学通学精“类”这个计算机的神奇类型。1.什么是类?这个很大一堆概念,没去背,在我看来,类就是一个数据类型,一个用户自定义的类型,这个类型里面封装了许多属于这个类的一些数据和方法,比如,人就是一个类型,数据就是手,脚这些,方法就是人能干的行为,比如吃饭这些。class Person{ public : void fn_eat(); privtate: string s_hand; strng s_foot;};2.类是一个对象,比如Person类相当于string,也是一个数据类型,而string s这个s变量...
阅读全文
posted @ 2012-02-09 20:15
RINA
浙公网安备 33010602011771号