随笔分类 -  C++面向对象程序设计

摘要:程序经过编译后将变量名转换成变量的地址,对变量的存取都是通过地址进行的。一.指针与指针变量指针:一个变量的地址。指针就是地址指针变量:专门存放变量地址的变量二.指针的初始化1.可以用任意合法的指针值进行初始化2.如果定义指针变量时没有初始化,则系统将根据指针变量的类型选择是否自动初始化指针变量:全局... 阅读全文
posted @ 2015-07-10 16:17 Rosanne 阅读(609) 评论(0) 推荐(0)
摘要:一.多继承机制存在哪些问题,怎么解决这些问题?——歧义性:相同名称的成员在内存中同时拥有多个拷贝,当通过派生类对象使用这些成员时,就会产生歧义性。作用域操作符虽然能解决歧义性问题,但并没有解决多个拷贝的问题。类D 的内存布局使用虚拟机制注意事项:1.若在虚基类中定义了带参数的构造函数,而没有定义默认... 阅读全文
posted @ 2015-07-10 15:51 Rosanne 阅读(998) 评论(0) 推荐(0)
摘要:1.C++中的空类默认产生以下四个函数: 默认构造函数:A() 拷贝构造函数:A(const A&) 赋值函数:A&operator = (const A&) 析构函数 struct也可以有构造函数、析构函数、继承等,与class的唯一区别是默认的访问控制权限 2.默认构造函数 如果没有显示定义构造 阅读全文
posted @ 2015-07-09 21:57 Rosanne 阅读(1328) 评论(0) 推荐(0)
摘要:指针与引用的差别:1.非空区别。在任何情况下,都不能使用指向空值的引用。2.合法性区别。在使用引用之前不需要测试它的合法性,指针则应该总是被测试,防止其为空。3.可修改区别。指针可以被重新赋值以指向另一个不同的对象,而引用则只能指向初始化时被指定的对象。4.可计算区别。指针可以进行加减运算,引用则不... 阅读全文
posted @ 2015-07-09 21:35 Rosanne 阅读(208) 评论(0) 推荐(0)
摘要:为了能使CPU对变量进行高效快速的访问,变量的起始地址应该具有某些特性,即所谓的“对齐”。例如对于4字节的int类型变量,其起始地址应位于4字节边界上,即起始地址能够被4整除。变量的对齐规则如下(32位系统):char在字节边界上对齐short (16-bit)在双字节边界上对齐int and lo... 阅读全文
posted @ 2015-07-09 18:41 Rosanne 阅读(739) 评论(0) 推荐(0)
摘要:一.const的用途1.定义const常量2.可以修饰函数的形参,返回值,以及函数体。被const修饰的内容可以受到强制保护,防止被意外修改,提高程序健壮性。const 返回值 函数返回值为 const 只有用在函数返回为引用的情况。 函数返回值引用常量表示不能将函数调用表达式作为左值使用。例... 阅读全文
posted @ 2015-07-09 18:33 Rosanne 阅读(342) 评论(0) 推荐(0)
摘要:内联函数与宏的区别:内联函数与普通函数相比,可以加快程序的运行速度,因为不需要中断调用,在编译的时候内联函数可以直接镶嵌到目标代码中。而宏只是简单的字符替换。内联函数要做参数类型检查,这是内联函数跟宏相比的优势。inline一般只用于如下情况: (1)一个函数不断被重复调用 (2)函数只有简单的... 阅读全文
posted @ 2015-07-09 18:00 Rosanne 阅读(2170) 评论(0) 推荐(0)
摘要:一.利用stringstream类1. 字符串到整数 stringstream sstr(str); int x; sstr >> x;(即从sstr中提取数据)2. 整数到字符串 stringstream sstr; int x; sstr 阅读全文
posted @ 2015-07-09 17:34 Rosanne 阅读(68251) 评论(0) 推荐(1)
摘要:两者的效率比较:当比较次数较少时,效率一样;当比较次数较多时,发现ifelse的速度更快,应该是其汇编指令更少的原因。if else的汇编代码如下:三目运算符代码如下: 阅读全文
posted @ 2015-07-09 17:19 Rosanne 阅读(3758) 评论(0) 推荐(0)
摘要:格式:strlen(字符数组名)功能:计算字符串S的长度,不包括‘\0'在内char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3char aa[5]="hello";cout<<strlen(aa)<<endl; //结果为不定值sizeof()返回的是... 阅读全文
posted @ 2015-07-07 18:51 Rosanne 阅读(216) 评论(0) 推荐(0)
摘要:解法一:把构造函数设为私有 将构造函数定义为私有,然后通过定义公有的静态函数来创建和释放类的实例。 1 class SealedClass 1 2 { 3 public: 4 static SealedClass1* GetInstance() 5 { 6 ret... 阅读全文
posted @ 2015-06-25 17:18 Rosanne 阅读(209) 评论(0) 推荐(0)