C++程序设计第10章,面向对象思想
-
string类
定义了string类型,提供了很多有用的函数,方便操作字符串
1.1 构造一个字符串
- 1.string s(“jkhkhkjh”);//效率最好
- 2.string s = “dassffh”;
- 3.char s[] = “sfdsg dg”;
1.2 追加字符串
s.append();4种用法
1.3 字符串赋值:
s.assign();5种用法
1.4 函数at,clear,erase及empty
提取指定位置 at(index) 清空 clear() 删除指定部分 erase(index,n) 检测一个字符串是否为空 empty()
1.5 函数length,size,capacity和c_str()
字符串长度 length() 字符串大小 size() 字符串存储空间 capacity() 返回一个c字符串 c_str()和data()
1.6 字符串比较
compare();两种用法, >0 ; 0 ; <0 分别对应大于,等于,小于
1.7 获取子串
substr();2种用法
1.8 字符串搜索
find();可以搜索一个字符或是一个子串,搜索不到则返回npos常量;4种用法
1.9 字符串插入和替换
insert() 2种用法 replace() 1种用法
1.10 字符串运算符
[] = += << >> ==,!=,<,>,<=,>=
1.11 将数字转换为字符串
atoi 转换为整数 atof 转换为浮点数 itoa 转换为字符串 还可以使用<sstream>头文件的stringstream类
stringstream ss;
ss << 3.1415926;
string s = ss.str();
1.12 字符串分割(抽取单词)
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string text("programing is fun");
stringstream ss(text);
cout << "words is :" << endl;
string word;
while (!ss.eof())
{
ss >> word;
cout << word << endl;
}
}
-
对象作为函数参数
对象可以通过值传递或引用传递传递给函数作参数, 但通过引用传递更加有效,因为传值需要额外的时间和空间
-
对象数组
像普通数组一样去用,可一调用该对象的属性和函数
-
实例成员和普通变量
静态变量(类变量),一个类的所有实例共享的数据 ClassName::-static Variable 静态函数:可以不创建一个类实例就可以调用 ClassName::functionName(arguments) static来声明
-
只读成员函数
不会改变函数数据域,用const(放在函数头的后面)修饰 静态函数不可以被定义为只读函数 通常应该一致的使用限定符(const)在常量引用参数和只读成员函数
-
从对象的角度思考
面向过程范式主要就是设计函数 面向对象主要就是设计对象(函数和数据的结合体)及对象的操作
-
对象合成
一个对象可以包含另一个对象,两者的关系成为合成 实际聚合关系的一种特殊情况,主体为聚合对象,客体为被聚合对象 合成关系:1对1 聚合关系:1对n 同一个类的不同对象间也可能存在聚合关系,例如一个人可以有多个老师
-
StackOfInteger类
利用类创建一个栈
-
类设计准则(UML)
内聚:将一类事物聚合为一个类 一致:一致的命名规则 封装 清晰:类应该具有清晰的约定,易于解释,易于理解 完整:保证其完整性和其多样性 实例与静态:在静态函数不能调用实例变量或实例函数