《C++ Primer Plus》学习笔记6
第11章 使用类
1、操作符的重载
将两个数组相加是一个常见的运算,可以使用下面的for循环来实现
for(int i = 0; i 20; i++)
evening[i] = sam[i] + janet[i];//每个元素每个元素相加
在C++中可以定义一个表示数组的类,并重载+操作符
evening = sam...
分类:
编程语言 时间:
2014-07-22 22:48:53
阅读次数:
320
1. 通过子类对象来调用函数: a)从父类继承而来的函数,可以正常使用; b)子类自行添加的函数,可以正常使用; c)子类编写和父类重名的函数,不管是否改变了参数,调用的都是子类的版本,如果需要调用父类的版本,需要显示指定父类名。 例1:#include #include using nam...
分类:
编程语言 时间:
2014-07-22 00:00:37
阅读次数:
341
《C++ Primer Plus》学习笔记7
第12章 类和动态内存分配
1、动态内穿和类
1)静态数据成员在类声明中声明,在包含类方法的文件中初始化,初始化时使用作用域操作符来指出静态成员所属的类,但如果静态成员是整型或枚举型const,则可以在类声明中初始化。
2)new分配足够的内存的时候一般都是这种形式
len = strlen(s);
str = new char[le...
分类:
编程语言 时间:
2014-07-21 23:29:04
阅读次数:
388
有时候指定了自己类类型来表示某种类型数据如SmallInt,那么为了方便计算就会指定一个转换操作符,将该类类型在某种情况下自动的转换为指定的类型
转换操作符
operator type();
转换函数必须是类成员函数,不能指定返回类型,并且形参列表必须为空,并且通常不应该改变转换对象,所以操作符通常定义为const成员。
#include
using namespace std;
cla...
分类:
编程语言 时间:
2014-07-21 13:32:27
阅读次数:
181
重载,转换,运算符
Conversion Operators
转换操作符
operator type() const
Conversions to
an array or a function type are not permitted.
转换函数必须是成员函数,不能指定返回 类型,必须有一个空的参数列表。
函数通常应 const。
Defining a Clas...
分类:
编程语言 时间:
2014-07-21 11:42:56
阅读次数:
227
函数的重载操作符中也有不少细节
1 重载操作符特点
重载操作符本质上就是重载函数,它的特点:
除了函数调用操作符‘()’外,所有的重载操作符的形参数目必须与操作符的操作数目相等。
重载操作符的操作数必须至少有一个类类型,否则就不是重载而是原型了。
优先级和结合性不会发生改变,例如对于算数操作符的重载,*的优先级肯定还是大于+
不具有短路求值特性(就是根据已有的值就可以判断出最终...
分类:
编程语言 时间:
2014-07-21 11:17:04
阅读次数:
190
最近在看C++ Primer复习C++的语法,看到书中15.9章中的文本查询示例时,觉得设计得非常不错,于是便动手照着实现了一个,修改了很久终于运行成功了,从中也学习到了很多的语法。下面把实现与总结分享给大家...
分类:
编程语言 时间:
2014-07-20 22:45:03
阅读次数:
372
函数引用操作符
struct absInt
{
int operator()(int val) const
{
cout!!!"<<endl;
return val<0 ? -val : val;
}
};
void fun1()
{
int i=-42;
absInt absObj;
int ui=absObj...
分类:
编程语言 时间:
2014-07-20 10:32:09
阅读次数:
380
0.两个要点a) 一个空类,编译器自动合成默认无参构造函数、析构函数、拷贝构造函数、赋值运算符。b) 在编写类的时候,必须严格区分对象是否可复制。1.运算符重载之 string类1.1 运算符重载的几个要点:a) 运算符重载可以有成员函数和友元函数的形式,后者比前者多一个参数。b) =和+=必须重载...
分类:
编程语言 时间:
2014-07-19 18:30:05
阅读次数:
206
特殊工具与技术
--运行时类型识别
引:
通过下面两个操作符提供RTTI:
1.typeid操作符,返回指针或引用所指对象的实际类型。
2.dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。
对于带虚函数的类,在运行时执行RTTI操作符,但对于其他类型,在编译时计算RTTI操作符。
当具有基类的引用或指针,但需要执行不是基类组成部分的派生类操作的时候,需要动态的强制类型转换。通常,从基类指针获得派生类行为最好的方法是通过虚...
分类:
编程语言 时间:
2014-07-19 11:45:04
阅读次数:
258