l 函数重载(函数多态)
可以有多个同名函数,只要他们的参数不同即可。
int store (int ,int);
int store (long ,long);
int store (long);
调用该函数时,指定的参数决定了调用哪一个版本
l 缓冲区存储; 定义一个数组 yum[100]来存储字符串。
(如char yum [ ] = “Zombie liion”)
std::cin >> yum;
但是如何保证用户的输入不会溢出?而且如果用户输入了空格,cin 会认为字符串就此结束,
不再会将接下来的内容写入缓冲区。
为了解决这个问题,必须调用cin 对象的方法getline并
提供两个参数 1、要填充的缓冲区 2、最多读取的字符数。
std::cin .getline(yum,18)
这样可以读取18个字符,包括空字符(空格)
在遇到回车后 停止读取。
还可以: std::cin .getline ( yum,18,‘ ’);
这条语句在遇到空格后即停止读取输入。
ex: char name[100];
std::cin .getline(name,18);
l 类和成员
1) 类的声明(class)比如声明一个Tricycle类:
class Tricycle { //三轮车public: unsigned int speed; pedal(); //踏板 brake(); //刹车 };一个成员变量speed 两个成员函数,这三个成员可以被其他类 直接引用。
//声明了类后,系统并不会为这个Tricycle分配内存,
他只是告诉编译器,这个类是什么,包括什么
声明了类后,可以用这个类来创建对象。
ex:Tricycle Yong_Jiu; //永久牌三轮车 同 int n;
创建对象后,可使用“ . ”来访问其成员变量/成员函数
ex : Yong_Jiu .speed = 6
注意:这里 Tricycle .speed = 6 是不允许的。
调用pedal()函数: Yong_Jiu .pedal();
class Tricycle { int model = 110;public: int.... pedal....}model并不在public 之列,所以他是私有的(PRivate)
虽然成员变量可以是共有的,但最好将他们都声明为私有的(private)这样只能通过成员函数访问他们,
用于设置或获取私有成员变量值的函数称为 存取器(accessor),其他 类 要使用这些变量,必须调用存取器.
要想访问私有函数,要在类中设置一个共有的接口函数,类的对象需要通过这个接口函数才能访问私有成员。
#include<iostream>using namespace std;class human {public: void set(int w) { weight = w; } int print ( ) { return weight ; }private: int weight;}; int main ( ) { human Tom; Tom.set(5); cout<<"Tom的体重为:"<<Tom.print()<<"/n"; human Mike; Mike.set(7); cout<<"Mike的体重为:"<<Mike.print()<<"/n"; return 0;}输出结果如下: Tom的体重为:5
Mike的体重为:7
看似这么复杂的设置了一个接口是为了提高安全性,比如用户输入了一个超过范围的数,
这个就可以在接口函数set中进行设定:
void set(int w) { if(w>0 && w<100) weight = w; else cout<<“请将weight的值设置为从0~100,否则系统将会把weight设置为0” weight = 0;}一般情况下,我们将类的数据成员设置为私有,而使用类的公有函数来访问它,
好处就是数据的赋值和读取分开操作,赋值函数不需要考虑读取函数是如何工作的,
反之亦然,如此便提高了程序的可维护性。
新闻热点
疑难解答