2012年11月6日

摘要: 在编程中指针是一个方便灵活的工具,同时也是一个让人十分苦恼的东西!谈谈给指针赋值的问题!在C++中对编程更加严谨,如果不注意使用指针的话会造成让你无法捕捉的错误!例如:#include"iostream"using namespace std;int main(){char *c ;cin >> c;cout << c;return 0;}运行错误:原因是 char *c是一个野指针,一个连自身内容都不知道的变量又怎么能给他赋值?(通俗点就是没有一个明确的内存空间,所以无法存入数据)就好比如是快递员,只知道收货人的姓名却不知道收货人的地址,那么他永远 阅读全文

posted @ 2012-11-06 09:34 买不起伞 阅读(104) 评论(0) 推荐(0)

2012年10月24日

摘要: 类中的非静态数据成员不能通过对象直接访问。例如: cout<<s.total<<endl;这是错误的!如果该数据成员是private(私有类型)那么要访问它只能通过该类的成员函数及该类的友元函数。如果该数据成员是public(公有类型)那么要访问它只能通过与该类以及它的相关类的成员函数或者友元函数。如果该数据成员是protected(保护类型)那么要访问它只能通过该类以及该类的派生类的成员函数及友元函数。类中的静态数据成员访问规则类中的静态数据成员是属于类的,而不是属于对象的,因此一定不能通过对象来访问类中的静态数据成员。如果静态数据成员是public(公有类型)那么访 阅读全文

posted @ 2012-10-24 16:56 买不起伞 阅读(163) 评论(0) 推荐(0)

2012年10月9日

摘要: 在C++中对于任何一个类,如果没有用户自定义的赋值运算符函数,系统会自动地为其生成默认的赋值运算函数,以完成数据成员之间的逐位复制。通常情况下,系统默认的赋值函数可以完成赋值任务,但在某些特殊情况下,如类中有指针类形式,就不能进行直接相互赋值,否则就会产生指针悬挂问题!例如:class Student{private: char *name; int score;public: Student(char *na,int s); ~Student(); void print();};#include"iostream"#include"iomanip"us 阅读全文

posted @ 2012-10-09 19:56 买不起伞 阅读(1051) 评论(0) 推荐(0)

2012年9月27日

摘要: 构造函数是在创建类对象时调用进行初始化。当出现以下3种情况时要调用拷贝构造函数1.一个类对象以值传递的方式进入函数体2.一个类对象以值传递的方式从函数返回3.一个类对象需要通过另一个类对象进行初始化 Ps:(我认为:其实都是创建一个新的类对象拷贝原来的类对象)例子:class Complex //complex.h{private:double real;double imag;public:Complex(double r = 0.0,double i = 0.0);Complex(const Complex &);void print();Complex operator +(Co 阅读全文

posted @ 2012-09-27 22:42 买不起伞 阅读(138) 评论(0) 推荐(0)