int main()
{
stud1.setdata(); //调用对象stud1的setdata函数
stud2.setdata(); //调用对象stud2的setdata函数
stud1.dispaly(); //调用对象stud1的dispaly函数
stud2.dispaly(); //调用对象stud2的dispaly函数
return 0;
}
包含类的C++程序
程序分析:
可以类比python中的类,声明类-->定义类,定义类的变量-->用对象调用类的方法,调用对象的函数-->调用对象的函数
掌握定义类和类的方法,定义类的变量即对象,学会调用对象的方法。
class是声明“类”类型时必须使用的关键字,一个类是由一批数据以及对其操作的函数组成的。
凡是被指定为公用的数据或函数,既可以被本类的成员函数调用,也可以被类外的语句所调用。被指定为私有的成员(函数或数据)只能被本类中的成员函数所调用,而不能被类以外调用(以后介绍的友元“类成员”以外)。
Student stud1,stud2;是一个定义语句,它的作用是将stud1和stud2定义为Student类型的变量。
对象是占实际存储空间的,而类型并不占实际存储空间。
用了带后缀的“.h”的头文件时不必用“using namespace std;”做声明。
1.3 C++对C的扩充
1.3.1 C++的输入输出
C++预定义的标准流对象 流名 含义 隐含设备cin 标准输入 键盘
cout 标准输出 屏幕
ceer 标准出错输出 屏幕
clog ceer的缓冲形式 屏幕
如果要指定输出所占列数,可以用控制符setw进行设置,如setw(5)的作用是为其后面一个输出项预留5列的空间,如果输出数据项的长度不足5列,则数据向右对齐,若超过5列则按实际长度输出。如下所示:
#include<iomanip>
#include<iostream>
using namespace std;
int main()
{
float a=3.45;
int b=5;
char c='A';
//cout << "a="<<a<<","<< "b="<<b<<","<< "c="<<c<<endl;
//cout << "a="<<setw(6)<<a<<","<< "b="<<setw(6)<<b<<","<< "c="<<setw(6)<<c<<endl;
cout << "a="<<a<<endl;
cout << "b="<<b<<endl;
cout << "c="<<c<<endl;
cout << "a="<<setw(6)<<a<<endl;
cout << "b="<<setw(6)<<b<<endl;
cout << "c="<<setw(6)<<c<<endl;
system("pause");
return 0;
}
运行结果:
代码分析:
若使用setw,应当在程序的开头包含头文件iomanip(或iomanip.h)。
如果执行窗口总是执行下就消失,可以在开头加上using namespace std;在return之前加上system("pause");就可解决。
1.3.2 用const定义常变量
在C语言中常用#define指令来定义符号常量,如#define PI 3.14159。
实际上,只是在预编译时进行字符置换,把程序中出现的字符串PI全部置换成3.14159.在预编译之后,程序中不再有PI这个标识符。PI不是变量,没有类型,不占用存储单元,而且容易出错。如下:
#include<iostream>
using namespace std;
int main()
{
int a=1;int b =2;
#define PI 3.14159
#define R a+b
cout <<PI*R*R<<endl;
system("pause");
return 0;
}
输出结果为 7.14159,即输出的并不是3.14159*(a+b)*(a+b),而是3.14159*a+b*a+b。程序因此常常出错。
C++提供了用const定义常变量的方法,如下: