摘要: 1: 若引用变量 a 引用的是 对象 b ,则 对象的构造和析构由 b完成, 与 a 无关。2: 若被引用变量 a 引用的是 能够自动调用构造函数的 new 生成的,则必须用能自动调用 析构函数的 delete &a 析构对象,否则将导致内存泄露。3: 若指针 a 指向的对象是用 new 生成的,则 必须调用 delete a 析构对象,不能调用free (a) ,否则将导致内存泄露。 #include <iostream.h>#include<stdio.h>#include<stdlib.h>using namespace std;class A 阅读全文
posted @ 2012-12-19 19:45 一把刷子 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 单继承派生类只有一个基类或虚基类,根据4个优先级别容易确定构造顺序:首先调用派生类虚基类的构造函数;无论虚基类的构造函数列出否总会被执行;接着调用派生类基类的构造函数,无论基类的构造函数列出与否总会被执行;然后按照派生类数据成员声明的顺序,依次初始化数据成员或调用相应构造函数,对象成员无论列出与否总会被构造;在然后最后执行派生类的构造函数体。析构是构造的逆序,所以反过来就行。 #include <iostream.h>#include<stdio.h>#include<stdlib.h>using namespace std;class A{ int a;p 阅读全文
posted @ 2012-12-19 17:30 一把刷子 阅读(915) 评论(0) 推荐(0) 编辑
摘要: 内容参考于://http://blog.csdn.net/eric_jo/article/details/4138548#include<iostream>#include<string>using namespace std;void f1(const int a,int b){ //a++; 参数是常量不可变 b++; cout<<a<<" "<<b<<endl;}void f2(const int *a,int *b){ //(*a)++; 指针所指的内容是常量不可变 (*b)++; cout&l 阅读全文
posted @ 2012-12-14 08:59 一把刷子 阅读(280) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<string>using namespace std;class boy{ public: int a; int b; boy(int a,int b):a(a),b(b){} void get(){cout<<a<<" "<<b<<endl;}};int main(){ boy a(2,3); boy *mm=&a; a.get(); int boy::*p=&boy::a;//类型名 类名+作用与域说明符+*变量 ... 阅读全文
posted @ 2012-12-13 22:25 一把刷子 阅读(96) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<string>using namespace std;namespace a{ int x=6;int k=10;};namespace b{ int x=2;int l=90;};namespace c{ int y=3;int m=40;};int main(){ //第一种访问方式。直接访问 cout<<"a的x"<<a::x<<endl<<"b的x"<<b::x<<endl; //利用空间名称+对象 阅读全文
posted @ 2012-12-13 16:18 一把刷子 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Ubuntu 安装是很快的,15分钟左右搞定,比较麻烦的是配置,下面就把我的配置步骤和大家分享下,这些资料网上都有,不过自己是按照配置步骤一步一步的来整理下,希望对大家有用。第一步:修改源(源不好速度会很慢的)Ubuntu12.04 更新源 1、首先备份Ubuntu 12.04源列表sudocp /etc/apt/sources.list /etc/apt/sources.list.backup(备份下当前的源列表,有备无患嘛)2、修改更新源sudogedit /etc/apt/sources.list (打开Ubuntu12.04源列表文件)3、将下面的代码粘贴进去(“#”开头的那一行为注释 阅读全文
posted @ 2012-12-13 15:01 一把刷子 阅读(571) 评论(0) 推荐(0) 编辑
摘要: Ubuntu12.04 更新源 1、首先备份Ubuntu 12.04源列表sudocp /etc/apt/sources.list /etc/apt/sources.list.backup(备份下当前的源列表,有备无患嘛)2、修改更新源sudogedit /etc/apt/sources.list (打开Ubuntu12.04源列表文件)3、将下面的代码粘贴进去(“#”开头的那一行为注释,可以直接复制进文件中)4、通知ubuntu启用新的更新源sudoapt-get update#台湾源debhttp://tw.archive.ubuntu.com/ubuntu/ precise main u 阅读全文
posted @ 2012-12-13 14:26 一把刷子 阅读(3035) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<string>#include<stdio.h>#include<stdlib.h>using namespace std;class boy{ string name; int age; public: boy(string name,int age) { name=name; age=age; this->name=name;//当函数参数和数据成员同名时,函数参数的优先级高,所以优先 boy::age=age;//访问的是函数参数,利用this 或者... 阅读全文
posted @ 2012-12-12 12:51 一把刷子 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 友元出现的目的是为了访问和更新 友元类的private 和 protect 信息:第一类: 类外的普通函数为友元类函数: 1 #include<iostream> 2 #include<string> 3 #include<stdio.h> 4 using namespace std; 5 class boy{ 6 public: 7 boy(string name,int age):name(name),age(age){} 8 ~boy(){} 9 //friend void get(boy& b);//要有参数1... 阅读全文
posted @ 2012-12-10 11:08 一把刷子 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 一:静态数据成员的出现是为了解决这样一类的问题的:让所有的对象共享一个对象。比如,现在定义一个银行卡的类,有两个数据成员,money的总数num 和 利率rate。因为rate对于所有的对象是一样的,如果所有的对象都有一个rate数据成员(如下面的类),就会使效率降低:1 class card{2 public:3 int num;//总数4 int rate;//利率5 card (int num,int rate):num(num),rate(rate){}6 };二:静态数据成员的声明,定义,和访问: 要在类内部声明,在外部定义和初始化(就像全局对象那样,即使是private的也是这.. 阅读全文
posted @ 2012-12-09 20:13 一把刷子 阅读(233) 评论(0) 推荐(0) 编辑