随笔分类 -  C++ Primer 学习笔记

C++ Primer 学习笔记
struct 和 class 定义类的区别
摘要:有一种常见的误解认为用struct保留字定义的类与用class定义的类有很大的区别。唯一的不同只是默认的成员保护级别和默认的派生保护级别,没有其他的区别。1. 用class定义的类,默认的成员访问级别为private。struct定义的类成员默认访问级别是public。2. 使用class关键字定义的派生类默认具有private继承,而用struct关键字定义的类默认具有public继承:  cl... 阅读全文
posted @ 2010-01-23 21:53 ︶ㄣ第二名 阅读(1173) 评论(0) 推荐(0)
复制构造函数和默认构造函数的调用
摘要:C++ Primer 第四版,第619页:  Panda ying_yang("ying_yang");  //create a Panda object  Panda ling_ling = ying_yang   //uses copy constructor起初对于第二个语句调用复制构造函数很诧异,感觉应当调用赋值操作符函数。其实不然,请看如下代码:代码 Code highlighting ... 阅读全文
posted @ 2009-12-23 14:30 ︶ㄣ第二名 阅读(590) 评论(0) 推荐(0)
派生类到基类转换的可访问性和虚函数所占用的sizeof空间
摘要:先看一段代码:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<iostream>usingnamespacestd;classBase{public:virtualvoidfun(){cout<<"Bas... 阅读全文
posted @ 2009-12-10 14:32 ︶ㄣ第二名 阅读(1072) 评论(4) 推荐(0)
const 指针与指向const的指针
摘要:当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p是一个指针,它指向的内容是const int 类型。p本身不用初始化它可... 阅读全文
posted @ 2009-12-02 14:49 ︶ㄣ第二名 阅读(45148) 评论(5) 推荐(1)
类的static成员函数和const成员函数
摘要:static成员的特性  static成员函数没有this指针。  static成员函数不能被声明为const。  static成员函数也不能被声明为虚函数。  static成员函数可以直接访问所属类的static成员,但不能直接使用非static成员。  static数据成员的类型,可以是该成员所属的类类型。非static成员被限定声明为其自身类对象的指针或引用。  static数据成员可以作为... 阅读全文
posted @ 2009-12-02 10:19 ︶ㄣ第二名 阅读(3075) 评论(0) 推荐(0)
C++类的const成员函数、默认的构造函数、复制形参调用函数
摘要:C++类的const成员函数[代码]const关键字表明这是一个const成员函数,它不可以修改Sales_item类的成员变量。如果没有为一个类显示的定义任何的构造函数,编译器会自动为这个类生成默认的构造函数,成为“合成的默认构造函数”。这样的话,构造函数不会自动初始化内置类型的成员。对于类类型的成员,比如string,会用string自身的默认构造函数进行初始化。复制形... 阅读全文
posted @ 2009-11-17 11:07 ︶ㄣ第二名 阅读(1192) 评论(0) 推荐(0)
函数 千万不要返回“局部对象”的引用或者指针
摘要:请看下列两个代码代码1:[代码]代码2:[代码]代码1是正确的。代码2的manifp函数,返回了局部对象的引用。运行时会出现不可预知的错误。 阅读全文
posted @ 2009-11-16 11:22 ︶ㄣ第二名 阅读(853) 评论(0) 推荐(0)