- 博客(16)
- 资源 (7)
- 收藏
- 关注
原创 重载 覆盖 隐藏【c++ 高质量编程】
成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性陡然增加。这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有
2011-03-11 14:42:00 261
原创 derived class 的constructor 调用
<br /> 系统复习一遍c++,发现很多细节的东西确实不牢靠了,写点儿总结,做笔记吧<br />1: 如果没有提供任何构造函数<br /> compiler 会 synthesize 一个出来,这个synthesized construtor 会首先初始化 base class 那部分,那面向对象的原则当然是自己的事情自己做,base part 的初始化,肯定会调用base class 的construtor 来初始化(如果base class 提供了的话),如果base class 没有提供,
2011-03-11 11:21:00 721
原创 用derived object 初始化(或赋值) base object 的时候,会发生 什么???【c++ Primer】
<br />derived object 内部包含base objec的部分,所以,在将derived object 赋值给 base object 的时候,会调用base class 的assign operator 或者(初始化的过程调用 copy constructor)。<br />原因就是数据成员不对称,少的给多的是可以的,多的给少的就出错了。
2011-03-11 10:19:00 506
原创 Public, Private, and Protected Inheritance
<br /> In public inheritance , the members of the base retain their access levels: The public members of the base are public members of the derived and the protected members of the base areprotected in the derived.In protected inheritance , the public an
2011-03-04 15:30:00 379
原创 子类的虚函数调用base 类的虚函数的情况【c++ primer 】
<br /> <br /> <br />When a derived virtual calls the base-class version, it must do so explicitly using the scope operator. If the derived function neglected to do so, then the call would be resolved at run time and would be a call to itself,<br />resultin
2011-03-04 15:12:00 447
原创 Nonvirtual Calls Are Resolved at Compile Time【c++ primer】
<br />Regardless of the actual type of the argument passed to print_total , the call of book is resolved at<br />compile time to Item_base::book .<br />Even if Bulk_item defined its own version of the book function, this call<br />would call the one from t
2011-03-04 15:09:00 335
原创 c++ 引用
<br /><br />(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。<br />(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。<br />(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。<br /> <br />C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递<br /><br /><br /><br />实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西?<br />
2011-03-01 10:51:00 316
原创 c ++ 常量【高质量c++编程】
<br /><br /> C++ 语言可以用const来定义常量,也可以用#define来定义常量。但是前者比后者有更多的优点:<br />(1) const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。<br />(2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。<br /> <br /><br />不能在类声明中初始化const数据成员。以下
2011-03-01 10:35:00 308
原创 OOP: An Overview【c++ primer】
<br />Inheritance :<br /> Inheritance lets us define classes that model relationships among types, sharing what is common and<br /> specializing only that which is inherently different.<br />那么derived class 就有两种选择,1 。 和base class 有一样的opration 2 。与base clas
2011-02-25 16:29:00 300
原创 Assignment operators 重载【c++ primer 】
Assignment operators can be overloaded. Unlike the compoundassignment operators, every assignment operator, regardless of parameter type, must be defined as a member function. // illustration of assignment operators for class string class string { pub
2011-02-25 14:14:00 374
原创 重载 >> 操作符【c++ primer 】
<br /><br /> <br />istream& operator>>(istream& in, Sales_item& s)<br />{<br />double price;<br />in >> s.isbn >> s.units_sold >> price;<br />// check that the inputs succeeded<br />if (in)<br />s.revenue = s.units_sold * price;<br />else<br />s = Sales_it
2011-02-25 13:50:00 259
原创 对 << 重载
<br /> <br />// general skeleton of the overloaded output operator<br />ostream&<br />operator <<(ostream& os, const ClassType &object)<br />{<br />// any special logic to prepare object<br />// actual output of members<br />os << // ...<br />// return ost
2011-02-25 13:22:00 339
原创 操作符重载成员还是非成员函数选择【c++ primer 】
When designing the overloaded operators for a class, we must choose whether to make each operator a class member or an ordinary nonmember function. In some cases, the programmerhas no choice; the operator must be a member. In other cases, there are some ru
2011-02-25 11:27:00 691 1
原创 destructor Rule And Sequence 【C++ primer】
<br /> <br /><br /> <br />A useful rule of thumb is that if a class needs a destructor, it will also need the assignment operator and a copy constructor. This rule is often referred to as the Rule of Three , indicating that if you need a destructor, then
2011-02-22 17:14:00 423
原创 copy constructor 的使用时机【源自c++ primer】
For many classes, the synthesized copy constructor does exactly the work that is needed.Classes that contain only members that are of class type or members that are of built-in (butnot pointer type) often can be copied without explicitly defining the copy
2011-02-22 15:51:00 532
原创 正式开始博客? maybe .
<br />很久以来一直想开博客,写技术博客,但是一直没有实现,可能是自己没有毅力,也可能是没有最直接的驱动力。研二第一学期快结束了,上一届的工作也大部分都确定了,找人了解经验,分析什么样的人拿到了什么样的offer ,这个时侯才意识到了风险,一直以为自己还不错,现在知道了,差得远,总之,让我现在出去,还拿不到自己非常满意的offer。<br />所以,坚持一下,还是踏踏实实的打基础,才是最终的王道。<br />学算法,总结语言基础,掌握设计模式,数据库,linux 应用+ kernel ,再加python
2010-11-27 16:46:00 341
Visual Assist X
2009-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人