2012年6月1日
摘要: 第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。第二:类的继承后方法属性变化。private 属性不能够被继承。使用private继承,父类的prot 阅读全文
posted @ 2012-06-01 15:10 york_hust 阅读(20525) 评论(0) 推荐(3) 编辑
摘要: 很多人不是很明白GCC与G++的区别gcc和g++都是GNU(组织)的一个编译器。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。 阅读全文
posted @ 2012-06-01 15:07 york_hust 阅读(338) 评论(0) 推荐(0) 编辑
摘要: #include <string>#include <iostream>using namespace std;class A{ const string name; public: A(const string& id=""):name(id){} ~A(){} void print(){ cout << name<<endl; }};class B{ string name; public: B(const string id){name=id;} ~B(){}... 阅读全文
posted @ 2012-06-01 11:24 york_hust 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 编译器对于从现有的对象产生新的对象这一事件的处理不近如人意一般的拷贝,如函数参数为对象时,编译器会把这个对象完整的拷贝一份,这样的拷贝被称为"位拷贝",但是这样拷贝可能带来问题,如在构造函数中我们有对这个对象的一些初始化,比如记录这个对象创造的时间,然后把这个时间存在对象中,如果使用"位拷贝",那么拷贝得到的对象的时间值和原对象是相同的,不仅函数参数为对象时会出现这样的问题,函数返回值为对象时也会出现这样的问题解决这个问题的方法就是写一个拷贝构造函数,X(X& x)是类X的拷贝构造函数,如果有这个构造函数,编译器在进行对象拷贝时就会先调用这个拷贝 阅读全文
posted @ 2012-06-01 09:59 york_hust 阅读(189) 评论(0) 推荐(0) 编辑